0

私は単純な仕事のように見えるものを持っています。C++ を使用して Windows アプリケーションを作成しました。ここで、フォームを印刷する機能を追加する必要があります。空想的なものは何もなく、行、表、および単純なグラフィックを含むプレーン テキストだけです。印刷に加えて、ユーザーは印刷中のすべてのフォームを画面上でプレビューできる必要があります。

以前は、組み込みの Internet Explorer コントロールを使用して、すべてのフォームを HTML でデザインすることで、このタスクを回避できました (HTML の部分が気に入っています)。そのフレーズを聞くたびにニッケルを持っていました:) とにかく、IEはHTMLページを印刷できますが、私のソフトウェアのユーザーがページサイズやページマージンなどをカスタマイズする簡単な方法を提供しません.

先週、IE 印刷テンプレートを必要なもので動作させるためにかなりの時間を費やしましたが、最終的には失敗しました。そのようなことは非常に不十分に文書化されており、私ができたことがランダムにクラッシュしたようです。この時点で、私はIEをあきらめました...

質問です。上記のような目的で、私の C++ プログラムに印刷を組み込む方法はありますか?

4

3 に答える 3

1

私の記憶が正しければ、プリンターには独自の HDC があり、その上に描画できます。シンプルなものがあればうまくいきます。純粋な WinAPI を使用して HTML ページをレンダリングしたい場合、大きな問題が発生します。

winapi を放棄して、代わりに GUI フレームワークを試すことをお勧めします。

Qt 4 (およびおそらく 5) には、リッチ テキストを表示できるテキスト エディター、リッチ テキスト用のレイアウト エンジン、 Web ページを表示できるコンポーネントがあります。ドキュメントを少し読むと、Web ページを画面ではなくプリンターにレンダリングする方法が見つかる可能性が高くなります。これまでのところ、まさに必要なもののように見えます。

Qt を使用すると依存関係 (プロジェクトに 20 MB 以上の DLL) が追加されますが、IMO< IE COM インターフェイスを使用するよりも良い考えです。

Qt を使いたくない場合は、WebKITのようなものを試すことができますが、私はそれでいくつかの悪い経験があり、さらに Qt の方が使いやすいかもしれません。

印刷に関する追加情報: Qtでの印刷。

于 2013-09-24T22:21:02.387 に答える
-1

プログラムで XML ファイルを生成し、XSLT を使用してそれらを HTML にレンダリングすることを検討してください。

スタイルシートを添付することで、プレゼンテーションのカスタマイズがより簡単になります。

于 2013-09-24T21:56:40.017 に答える