以編程方式使用 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 文檔

使用 Java 語言打印多個文件或批量打印 PDF 文件是一個簡單的過程。您可以按照以下步驟打印多個 PDF 文件:

  1. 初始化一個String類型的列表
  2. 將多個 PDF 文件添加到打印
  3. 打印PDF文件

下面的代碼展示瞭如何使用Java語言打印多個PDF文件:

// 初始化一個String類型的列表
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 打印相關的場景還有很多,您可以通過 免費支持論壇 與我們自由討論。我們很樂意提供幫助!

也可以看看