打印 PDF 文檔通常是不同公司和組織的關鍵功能。您可以使用 Java 語言以編程方式輕鬆打印 PDF 文件。您可以通過在您的環境中配置來使用Aspose.PDF for Java API。讓我們來看看您的 Java 應用程序中可能出現的不同 PDF 打印場景:
使用 Java 打印 PDF 文件
您可以按照以下步驟使用 Java 代碼輕鬆打印 PDF 文件:
- 創建 PdfViewer 對象
- 加載輸入 PDF 文件
- 打印 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 文件:
- 初始化一個String類型的列表
- 將多個 PDF 文件添加到打印
- 打印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 頁。您可以通過以下步驟涵蓋這兩種情況:
- 初始化 PdfViewer 對象
- 設置打印屬性
- 為打印機和頁面設置創建對象
- 指定是要打印所有頁面、特定頁面還是連續頁面範圍
- 使用打印機和頁面設置打印 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 文件,並根據您的要求打印文件。您需要按照以下步驟操作:
- 使用密碼加載受密碼保護的 PDF 輸入文件
- 初始化 PdfViewer 對象
- 打印 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 格式時,您可以按照以下步驟獲取狀態:
- 加載輸入 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.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 打印相關的場景還有很多,您可以通過 免費支持論壇 與我們自由討論。我們很樂意提供幫助!