RCPプログラムで「出力」を生成して印刷するための優れた標準的な方法を探しています。これは、標準の印刷ダイアログを使用してWindows、Mac OS、およびLinuxで機能するので機能するはずです。
私はBirtプロジェクトを知っていますが、RCPプログラム内でそれを実装する方法、標準の印刷ダイアログを呼び出す方法、およびBirtで生成されたレポートをプリンターに渡す方法についてのヒントを見つけることができませんでした。
すべてのヒントに満足しています。
RCPプログラムで「出力」を生成して印刷するための優れた標準的な方法を探しています。これは、標準の印刷ダイアログを使用してWindows、Mac OS、およびLinuxで機能するので機能するはずです。
私はBirtプロジェクトを知っていますが、RCPプログラム内でそれを実装する方法、標準の印刷ダイアログを呼び出す方法、およびBirtで生成されたレポートをプリンターに渡す方法についてのヒントを見つけることができませんでした。
すべてのヒントに満足しています。
BirtプロジェクトはITextを使用していたと思います。(現在はITextPDF)
もう1つの解決策は、ApacheFopをRCPプロジェクトに統合することです。(Apache FOPを参照)。
それが機能するためには、レンダラーを実装するのではなく、新しい中間フォーマットの一部として/ペアを実装することをお勧めします(それがFopに統合されている場合、私にはわかりません):IFDocumentHandler
IFPainter
IFDocumentHandler
(ドキュメントレベル)とIFPainter
(ページレベル)を実装する2つのクラスを準備します。org.apache.fop.render.intermediate
。 MimeConstants.java
拡張クラスを作成する必要があります。AbstractIFDocumentHandlerMaker
META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler
次に、その「メーカー」クラスの完全修飾クラス名を書き込む というテキストファイルを作成します。setIFDocumentHandlerOverride()
メソッドです。これにより、ウィンドウFOUserAgent
で出力を設定できます。SWT
通常のAPIは、ファイルを生成するために最適化されています。バグ23618 (7年後に修正されました!)には、プリンタージョブの作成の小さな例が含まれており、SWT FAQには、プリンターに関するいくつかの興味深い要素(vs.ディスプレイ、DPI、およびトリム)があります。このSWTスニペットも非常に明確です。ただし、ハンドラー(つまり、作成したクラス、印刷ダイアログを開くことができるクラス)を設定する
と、これらの例はいずれもコマンドを介して呼び出されません(簡単に定義できます)。
注:[印刷]ダイアログボックスを呼び出すときは、Eclipse Helios 3.6の最新リリース(つまり、2010年1月下旬の3.6M5)のみが、ワークベンチがシャットダウン(つまり:
SWTPaperclipsの使用を検討してください。これにより、RCPアプリケーションからの印刷がはるかに簡単になりました。