PDF印刷のよくある質問
以下は、一般的な質問とサンプルソースコードへのリンクのリストです。追加のご質問がある場合は、お問い合わせください。
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(埋め込まれている場合でも、標準のJavaフォントを使用して14の標準フォント(Arial、Courier、Times New Romanなど)すべてを印刷しようとします。フォントにカスタムエンコーディングがある場合は機能しない可能性があります。)
特にPCL印刷は非常に遅くなる可能性があり、これらのモードから恩恵を受けることがわかっていますが、すべてのプリンターで機能します。
追加オブジェクトの描画 では、PDF印刷出力の上に独自のオブジェクトを描画する方法(特別な注釈、著作権表示など)を説明しています。
独自のカスタムコードを記述していて、PDF以前にいくつかのページを印刷しようとすると、PDF全体が印刷されません。PdfDecoderメソッドuseLogicalPrintOffset(int pagesPrinted) を使用して、すでにいくつかのページを印刷したことをJPedalに伝える必要があるかもしれません。
CustomFormPrintインターフェースを使用すると、PDFフォームウィジェットの印刷を完全に制御し、一部またはすべてを上書きできます。カスタムインターフェースのインスタンスをJPedalに渡すと、印刷が発生したときに呼び出されます。
チュートリアルでは、JavaソフトウェアにPDF印刷機能を簡単に追加し、JPedalでカスタマイズする方法を示しています。
- JavaでのPDF印刷 。JPedalでPDFファイルを印刷する方法を示す簡単なチュートリアルです。
