2

RCPプログラムで「出力」を生成して印刷するための優れた標準的な方法を探しています。これは、標準の印刷ダイアログを使用してWindows、Mac OS、およびLinuxで機能するので機能するはずです。

私はBirtプロジェクトを知っていますが、RCPプログラム内でそれを実装する方法、標準の印刷ダイアログを呼び出す方法、およびBirtで生成されたレポートをプリンターに渡す方法についてのヒントを見つけることができませんでした。

すべてのヒントに満足しています。

4

2 に答える 2

2

BirtプロジェクトはITextを使用していたと思います。(現在はITextPDF

もう1つの解決策は、ApacheFopをRCPプロジェクトに統合することです。(Apache FOPを参照)。
それが機能するためには、レンダラーを実装するのではなく、新しい中間フォーマットの一部として/ペアを実装することをお勧めします(それがFopに統合されている場合、私にはわかりません):IFDocumentHandlerIFPainter

  • 新しいJavaプロジェクトを作成し、パッケージ名を決定し、IFDocumentHandler (ドキュメントレベル)とIFPainter(ページレベル)を実装する2つのクラスを準備します。
    これらのインターフェースはパッケージに含まれていますorg.apache.fop.render.intermediate
  • 新しい実装を登録するには、MIMEタイプを定義し(も参照 ) 、ファクトリクラスとして機能するMimeConstants.java拡張クラスを作成する必要があります。AbstractIFDocumentHandlerMaker
  • META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler次に、その「メーカー」クラスの完全修飾クラス名を書き込む というテキストファイルを作成します。
  • 追加する必要があるかもしれない(現在欠落している)1つのことは、のsetIFDocumentHandlerOverride()メソッドです。これにより、ウィンドウFOUserAgentで出力を設定できます。SWT通常のAPIは、ファイルを生成するために最適化されています。

バグ23618 (7年後に修正されました!)には、プリンタージョブの作成の小さな例が含まれており、SWT FAQには、プリンターに関するいくつかの興味深い要素(vs.ディスプレイ、DPI、およびトリム)があります。このSWTスニペットも非常に明確です。ただし、ハンドラー(つまり、作成したクラス、印刷ダイアログを開くことができるクラス)を設定する
と、これらの例はいずれもコマンドを介して呼び出されません(簡単に定義できます)。

注:[印刷]ダイアログボックスを呼び出すときは、Eclipse Helios 3.6の最新リリース(つまり、2010年1月下旬の3.6M5)のみが、ワークベンチがシャットダウン(つまり:

  • 選択したプリンター
  • ファイルに印刷
  • プリンタ設定:これらは、用紙サイズ、ページ順序の向きなどのプリンタ固有のオプションです。)
于 2010-03-26T07:26:22.100 に答える
0

SWTPaperclipsの使用を検討してください。これにより、RCPアプリケーションからの印刷がはるかに簡単になりました。

http://code.google.com/p/swt-paperclips/

于 2010-06-17T17:29:05.563 に答える