fbpx
< 戻る
印刷

完全なチュートリアル

このチュートリアルは、Java と JPedal を使用して、5 つの簡単なステップで PDF ファイルを印刷する方法を解説しています。これらの 5 つの手順により、印刷の実行方法をより詳細に制御できるようになります。

このような詳細な制御が必要ない場合は、印刷サンプルを使用して、わずか数行のコードで PDF ファイルを印刷できます。

ステップ 1. PdfDecoder オブジェクトを作成する

まず、 PDF ファイルを表す PdfDecoder オブジェクトが必要です。必要に応じて、フォントの置換を設定する必要がある場合もあります。

暗号化PDFファイルを印刷する場合の注意事項

パスワードにパスワードが必要な場合は、setEncryptionPassword(String password) でパスワードを設定するか、以下に示す方法の代わりに openPdfFile(String filename, String passwd) を使用してファイルを開く必要があります。

				
					PdfDecoder decodePdf = new PdfDecoder(true); //Set to true as I don't want to render it to screen in this tutorial
try {
    decodePdf.openPdfFile("pdf/file/path.pdf");
    FontMappings.setFontReplacements();
} catch (Exception e) {
    //...
}
				
			

ステップ 2. 属性を設定する

また、指定された用紙サイズでの印刷や印刷部数など、使用する設定をプリンターに伝える AttributeSet も必要です。このチュートリアルでは、JobName 属性のみを使用します。

利用可能なさまざまな属性の詳細については、ここをクリックしてください。

				
					PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet();
JobName jobName = new JobName("Example Print", null);
attributeSet.add(jobName);
				
			

PdfDecoder クラスには、異なるサイズの用紙に印刷するかどうか、ページをどのように回転するかなど、印刷出力を調整するために呼び出すことができるメソッドが多数あります。これらの方法のうち最も一般的に使用されるものを以下に示します。

				
					decodePdf.setPrintAutoRotateAndCenter(true);
decodePdf.setPrintPageScalingMode(PrinterOptions.PAGE_SCALING_FIT_TO_PRINTER_MARGINS);
decodePdf.setPrintPageScalingMode(PrinterOptions.PAGE_SCALING_NONE);
decodePdf.setPrintPageScalingMode(PrinterOptions.PAGE_SCALING_REDUCE_TO_PRINTER_MARGINS);
decodePdf.setPagePrintRange(1, decodePdf.getPageCount());
				
			

ステップ 3. プリンターを探す

設定した特定の属性をサポートする Java で利用可能な PrintService のリストを見つけるには、コードの次のセクションが必要になります。ここでは、プリンター名をコンソールに出力しているだけです。

				
					PrintService[] services = PrintServiceLookup.lookupPrintServices(DocFlavor.SERVICE_FORMATTED.PAGEABLE, attributeSet);
for(PrintService s : services) {
    System.out.println(s.getName());
}
				
			

どのプリンタにアクセスできるかがわかったら、以下に示すように指定された名前を持つ特定の PrintService を取得できます。

				
					PrintService printingDevice;
for(PrintService s : services) {
    if(s.getName().equals("Microsoft XPS Document Writer")) {
        printingDevice = s;
    }
}
				
			

ステップ 4. ページング可能な PDF を作成する

印刷可能なオブジェクトを作成するには、PdfBook オブジェクトを作成する必要があります (必要に応じて、attributes パラメーターを null にすることもできます)。これは印刷のために SimpleDoc に渡されます。

				
					PdfBook pdfBook = new PdfBook(decodePdf, printingDevice, attributeSet);
SimpleDoc doc = new SimpleDoc(pdfBook, DocFlavor.SERVICE_FORMATTED.PAGEABLE, null);
				
			

ステップ 5. 印刷する

ここで行う必要があるのは、PrintService から DocPrintJob を受信し、 SimpleDoc と属性 (存在する場合) をメソッド入力変数として使用して PrintService 印刷メソッドを呼び出すことだけです。

				
					DocPrintJob printJob = printingDevice.createPrintJob();
try {
    printJob.print(doc, attributeSet);
} catch (PrintException e) {
    //...
}
				
			

PDF 印刷のチュートリアル

このチュートリアルでは、Java ソフトウェアに Print PDF 機能を簡単に追加し、JPedal を使用してカスタマイズする方法を示します。
    MENU
    PAGE TOP