PDF印刷のFAQ
以下は一般的な質問のリストとサンプルソースコードへのリンクです。追加のご質問がある場合は、お問い合わせください。
PrinterJobクラスは印刷システムへのアクセスを提供し、ユーザーがこのコードスニペット を使用してプリンターをリストし、選択できるようにします。
Java印刷機能では、ユーザーがページサイズと可視ページサイズを設定でき、JPedalはこれを印刷に使用します。これは以下のように読み取ることができます:
PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pf = printJob.defaultPage();
ユーザーは最適なフィットを実現するために独自のページサイズを定義することもできます:
//Create default Page format A4
Paper paper = new Paper();
//A4 borderless (setting may need adjustment)
paper.setSize(595, 842);
//the following will make part of page disappear
//paper.setImageableArea(0, 0, 595, 842);
//works on our printers
paper.setImageableArea(5, 5, 565, 812);
これらの値は特定のプリンターに適切でない場合は無視され、画像が切り取られる結果になります。そのため、デフォルトを使用するか、さまざまなプリンターでテストしてください。
このコード は、プリンターが利用可能な場合に選択します。
プリンターはJVMフラグを使用して設定できます。JVMフラグのリストはこちら で確認できます。
JPedal Viewerには、PDF文書の印刷を詳細に制御できる機能満載の印刷パネルがあり、現在選択されている設定での出力プレビューを表示します。
スケーリングを設定するには、JPedalにorg.jpedal.objects.PrinterOptionsから定数を渡すメソッドがあります。これは印刷 前に設定する必要があります。これはプリンターダイアログから読み取ることができます。
このコード は、モノクロで印刷する方法を示しています。
自動回転と中央揃えオプションはデフォルトでオフですが、この例 のように設定できます。
自動回転または中央揃えオプションは、次のメソッドを使用して個別に設定することもできます。
//Set auto rotate
PdfDecoder.setPrintAutoRotate(boolean rotate);
//Set print centering
PdfDecoder.setCenterOnScaling(boolean center);
JPedalは、この例 のように、現在表示されているページの一部のみを印刷できます。
用紙サイズがデフォルトとして使用されますが、PDFサイズはこの例 のように設定できます。
PDFページサイズは通常Paperオブジェクトの一部であり、PrinterJobオブジェクトから読み取って変更できます。値はプリンターにハードコードされた制限を上書きしません。org.jpedal.examples.viewer.paper.PaperSizes クラスには、さまざまなページレイアウトの複数の設定が含まれています。サイズだけでなく、常に**setImageableArea()**も使用してください。印刷用にこの例 のように設定できます。
用紙サイズはJVMフラグを使用して設定できます。詳細についてはこちら を参照してください。
JPedalは、PDFページサイズに基づいて使用するLANDSCAPE/PORTRAIT設定を自動的に計算します。これを手動で設定することは推奨しません。
JPedalは、現在表示されているPDFページの一部や、奇数または偶数ページのみを印刷できます。これはサンプルコード で示されています。
これを改善するために、可能な限りJavaのフォントレンダラーを使用してプロセスを高速化するモードをいくつか追加しました。これは、次のいずれかの値を使用してorg/jpedal/PdfDecoder.html#setPrintPageMode(int) メソッドを使用して有効にします。
PdfDecoder.NOTEXTPRINT(デフォルトモード)PdfDecoder.TEXTGLYPHPRINT(フォントが一致する場合、Javaにグリフを作成させる)PdfDecoder.TEXTSTRINGPRINT(Javaにすべての作業を実行させようとする)PdfDecoder.STANDARDTEXTSTRINGPRINT(埋め込まれていても、すべての14の標準フォント(Arial、Courier、Times New Romanなど)を標準Javaフォントを使用して印刷しようとします。フォントにカスタムエンコーディングがある場合、これは機能しない場合があります。)
特にPCL印刷は非常に遅くなることがあり、これらのモードの恩恵を受けますが、すべてのプリンターで機能します。
追加オブジェクトの描画 では、PDF印刷出力の上に独自のオブジェクト(特別な注釈、著作権表示など)を描画する方法について説明しています。
独自のカスタムコードを作成してPDFの前にいくつかのページを印刷しようとすると、PDF全体が印刷されません。PdfDecoderメソッドuseLogicalPrintOffset(int pagesPrinted) を使用して、すでにいくつかのページを印刷したことをJPedalに通知する必要がある場合があります。
CustomFormPrintインターフェイスを使用すると、PDFフォームウィジェットの印刷を完全に制御し、一部またはすべてを上書きできます。カスタムインターフェイスのインスタンスをJPedalに渡すと、印刷が発生したときに呼び出されます。
チュートリアルでは、JPedalを使用してJavaソフトウェアにPDF印刷機能を簡単に追加し、カスタマイズする方法を示しています。
- JavaでのPDF印刷 。JPedalでPDFファイルを印刷する方法を示すシンプルなチュートリアルです。
