プログラムでJavaを使用してPDFを印刷する

PDFドキュメントの印刷は、さまざまな企業や組織で重要な機能となることがよくあります。 Java言語を使用してプログラムでPDFファイルを簡単に印刷できます。 Aspose.PDF for Java APIは、ご使用の環境で構成することで使用できます。 Javaアプリケーションで可能なさまざまなPDF印刷シナリオを見ていきましょう。

Javaを使用してPDFファイルを印刷する

以下の手順に従って、Javaコードを使用してPDFファイルを簡単に印刷できます。

  1. PdfViewerオブジェクトを作成します
  2. 入力PDFファイルをロードします
  3. PDFファイルを印刷する

以下のコードスニペットは、Javaを使用してプログラムでPDFファイルを印刷する方法を示しています。

//PdfViewerオブジェクトを作成します
PdfViewer viewer = new PdfViewer();
//入力PDFファイルを開く
viewer.bindPdf(dataDir + "Test.pdf");
//PDFドキュメントを印刷する
viewer.printDocument();
//PDFファイルを閉じる
viewer.close();

Javaを使用した複数のPDFドキュメントの印刷

複数のファイルの印刷、またはPDFファイルのバッチ印刷は、Java言語を使用した簡単なプロセスです。以下の手順に従って、多数のPDFファイルを印刷できます。

  1. 文字列型のリストを初期化します
  2. 印刷する複数のPDFファイルを追加する
  3. PDFドキュメントを印刷する

次のコードは、Java言語を使用して複数のPDFファイルを印刷する方法を示しています。

// 文字列型のリストを初期化します
List<String> files = new ArrayList<>();

// 印刷するファイルを複数追加する
files.add(dataDir + "First.pdf");
files.add(dataDir + "Second.pdf");

// 印刷する各ファイルを処理します
for (String file : files)
{
    //PdfViewerオブジェクトを作成します
    PdfViewer viewer = new PdfViewer();
    //入力PDFファイルを開く
    viewer.bindPdf(file);
    //PDFドキュメントを印刷する
    viewer.printDocument();
    //PDFファイルを閉じる
    viewer.close();
}

Javaを使用して特定のページまたはページ範囲を印刷する

APIを使用すると、PDFファイルの印刷中に多くの制御を行うことができます。要件に応じて、ファイルの印刷中にさまざまなフィールドとメソッドを操作できます。たとえば、PDFファイルのすべてのページと数ページだけを印刷したくない場合です。ページ番号3からページ番号7のような連続したページ範囲の場合もあれば、ページ番号1、5、6のようなランダムなページの場合もあります。次の手順で両方のシナリオをカバーできます。

  1. PdfViewerオブジェクトを初期化します
  2. 印刷用の属性を設定する
  3. プリンタとページ設定用のオブジェクトを作成する
  4. すべてのページ、特定のページ、または連続したページ範囲を印刷するかどうかを指定します
  5. プリンタとページ設定を使用してPDFドキュメントを印刷する

次のコードは、Javaを使用してPDFドキュメントの特定のページまたはページの範囲を印刷する方法を示しています。

// PdfViewerオブジェクトを作成します
PdfViewer viewer = new PdfViewer();
// 入力PDFファイルを開く
viewer.bindPdf(dataDir + "test.pdf");
// 印刷用の属性を設定する
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing

// プリンタとページの設定およびPrintDocument用のオブジェクトを作成します
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();
// プリンター名を設定する
ps.setPrinterName("Microsoft Print to PDF");

// ps.setPrintRange(2); //0=すべてのページ; 1=選択; 2=いくつかのページ
// ps.setFromPage(1);
// ps.setToPage(2);


ps.setPrintRange(1); // 0 = all pages; 1 = selection; 2 = some pages
ps.setSelectedPages(new int[]{1, 3, 5});


// プリンタとページ設定を使用してドキュメントを印刷する
viewer.printDocumentWithSettings(pgs, ps);

Javaを使用して保護されたPDFを印刷する

データへの許可されたアクセスを保証するために、PDFファイルがパスワードで保護または暗号化される場合があります。 Javaコードを使用して、セキュリティで保護された、または暗号化されたPDFファイルに簡単にアクセスして印刷し、要件に応じてファイルを印刷できます。以下の手順に従う必要があります。

  1. パスワードで保護されたPDF入力ファイルをパスワードとともにロードします
  2. PdfViewerオブジェクトを初期化します
  3. PDFドキュメントを印刷する

以下のコードは、Javaコードを使用して保護されたPDFファイルを印刷する方法を説明する次の手順に基づいています。

//ユーザーまたは所有者のパスワードを指定しながら、安全なPDFドキュメントをロードします
Document document = new Document(dataDir + "Password.pdf" , "userORowner");
//PdfViewerオブジェクトを作成します
PdfViewer viewer = new PdfViewer();
//入力PDFファイルを開く
viewer.bindPdf(document);
//PDFドキュメントを印刷する
viewer.printDocument();
//PDFファイルを閉じる
viewer.close();

Javaを使用してPDFを印刷する際の印刷タスクのステータスを確認する

ファイルがプリンタの印刷キューに送信された後、印刷ジョブのステータスを監視できます。これにより、アプリケーションは印刷が成功したかどうかを判断できます。 PdfViewerクラスは、印刷ジョブのステータスを確認するのに役立つメソッドgetPrintStatusを公開します。たとえば、PDFをXPS形式に印刷しているときに、次の手順に従ってステータスを取得できます。

  1. 入力PDFファイルをロードします
  2. 印刷用の属性を設定する
  3. プリンタとページ設定用のオブジェクトを作成する
  4. プリンター名を設定する
  5. 出力をファイルに出力します
  6. 印刷状態を確認する

次のコードは、Javaコードを使用してPDF印刷中に印刷タスクのステータスを確認する方法を示しています。

// PdfViewerオブジェクトを作成します
PdfViewer viewer = new PdfViewer();
// 入力PDFファイルを開く
viewer.bindPdf(dataDir + "test.pdf");
// 印刷用の属性を設定する
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing

// プリンタとページの設定およびPrintDocument用のオブジェクトを作成します
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();

// プリンター名を設定する
ps.setPrinterName("Microsoft Print to PDF");


// 結果のプリントアウト名
ps.setPrintFileName(dataDir + "ResultantPrintout.xps");

// 出力をファイルに出力します
ps.setPrintToFile(true);

// 上記で指定した設定でドキュメントを印刷します
viewer.printDocumentWithSettings(pgs, ps);

// 印刷状態を確認する
if (viewer.getPrintStatus() != null)
{
    // 例外がスローされました
    Exception ex = (Exception)viewer.getPrintStatus();
    if (ex != null)
    {
        // 例外メッセージを取得する
    }
}
else
{
    // エラーは見つかりませんでした。印刷ジョブが正常に完了しました
    System.out.println("printing completed without any issue..");
}

結論

JavaアプリケーションでのPDFファイルの印刷に関連するさまざまなシナリオを検討しました。これらの機能は、Java言語を使用して、Webアプリケーション、コンソールアプリケーション、または使用している他のタイプのプロジェクトに簡単に統合できます。 APIリファレンスまたは製品ドキュメントから学ぶことで、APIをさらに詳しく調べることができます。 PDF印刷に関連するシナリオは他にもたくさんあり、無料サポートフォーラムから自由に話し合うことができます。喜んでお手伝いさせていただきます!

関連項目