Aspose.PDF功能演示:使用Java以編程方式打印PDF文件
在不同的公司和組織中,打印PDF文檔通常是一項關鍵功能,可以通過在環境中進行配置來使用Aspose.PDF for Java API 。在本文中,將介紹在Java應用程序中可能出現的不同PDF打印方案。
- 使用Java打印PDF文件
- 使用Java打印多個PDF文檔
- 使用Java打印特定頁面或頁面范圍
- 使用Java打印安全的PDF
- 使用Java打印PDF時檢查打印任務的狀態
目前,Java版Aspose.PDF升級到v20.10版,感興趣的朋友可點擊下方按鈕下載最新版。
使用Java打印PDF文件
按照以下步驟使用Java代碼輕松打印PDF文件:
- 創建PdfViewer對象
- 加載輸入PDF文件
- 打印PDF文件
下面的代碼段顯示了如何使用Java以編程方式打印PDF文件:
//Create PdfViewer object PdfViewer viewer = new PdfViewer(); //Open input PDF file viewer.bindPdf(dataDir + "Test.pdf"); //Print PDF document viewer.printDocument(); //Close PDF file viewer.close();
使用Java打印多個PDF文檔
使用Java語言,打印多個文件或批量打印PDF文件是一個簡單的過程。您可以按照以下步驟打印許多PDF文件:
- 初始化字符串類型列表
- 將多個PDF文件添加到打印
- 打印PDF文件
以下代碼顯示了如何使用Java語言打印多個PDF文件:
// Initialize a list of String type Listfiles = new ArrayList<>(); // Add multiple files to be printed files.add(dataDir + "First.pdf"); files.add(dataDir + "Second.pdf"); // Process each file to print for (String file : files) { //Create PdfViewer object PdfViewer viewer = new PdfViewer(); //Open input PDF file viewer.bindPdf(file); //Print PDF document viewer.printDocument(); //Close PDF file viewer.close(); }
使用Java打印特定頁面或頁面范圍
API在打印PDF文件時為您提供了很多控制。可以根據需要在打印文件時使用不同的字段和方法。例如,如果不想打印PDF文件的所有頁面,而只打印幾頁。它可以是連續的頁面范圍,例如從第3頁到第7頁,也可以是隨機的頁面,如第1,5和6頁。可以通過以下步驟涵蓋這兩種情況:
- 初始化PdfViewer對象
- 設置打印屬性
- 創建打印機和頁面設置的對象
- 指定是要打印所有頁面,特定頁面還是連續頁面范圍
- 使用打印機和頁面設置打印PDF文檔
以下代碼顯示了如何使用Java打印PDF文檔中的特定頁面或頁面范圍:
// Create PdfViewer object PdfViewer viewer = new PdfViewer(); // Open input PDF file viewer.bindPdf(dataDir + "test.pdf"); // Set attributes for printing 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 // Create objects for printer and page settings and PrintDocument PrintPageSettings pgs = new PrintPageSettings(); PdfPrinterSettings ps = new PdfPrinterSettings(); // Set printer name ps.setPrinterName("Microsoft Print to PDF"); // ps.setPrintRange(2); // 0 = all pages; 1 = selection; 2 = some pages // ps.setFromPage(1); // ps.setToPage(2); ps.setPrintRange(1); // 0 = all pages; 1 = selection; 2 = some pages ps.setSelectedPages(new int[]{1, 3, 5}); // Print document using printer and page settings viewer.printDocumentWithSettings(pgs, ps);
使用Java打印安全的PDF
有時,PDF文件使用密碼保護或加密,以確保對數據的授權訪問。可以使用Java代碼輕松訪問和打印安全或加密的PDF文件,并根據需要打印文件。需要按照以下步驟操作:
- 使用密碼加載受密碼保護的PDF輸入文件
- 初始化PdfViewer對象
- 打印PDF文件
以下代碼基于以下步驟,這些步驟說明了如何使用Java代碼打印受保護的PDF文件:
//Load secure PDF document while specifying User or Owner password Document document = new Document(dataDir + "Password.pdf" , "userORowner"); //Create PdfViewer object PdfViewer viewer = new PdfViewer(); //Open input PDF file viewer.bindPdf(document); //Print PDF document viewer.printDocument(); //Close PDF file viewer.close();
使用Java打印PDF時檢查打印任務的狀態
將文件發送到打印機的打印隊列后,您可以關注打印作業的狀態。這使您的應用程序可以確定打印是否成功。PdfViewer類公開了getPrintStatus方法,該方法可幫助您檢查打印作業的狀態。例如,在將PDF打印為XPS格式時,可以按照以下步驟獲取狀態:
- 加載輸入PDF文件
- 設置打印屬性
- 創建打印機和頁面設置的對象
- 設置打印機名稱
- 將輸出打印到文件
- 檢查打印狀態
以下代碼顯示了如何使用Java代碼在PDF打印過程中檢查打印任務的狀態:
// Create PdfViewer object PdfViewer viewer = new PdfViewer(); // Open input PDF file viewer.bindPdf(dataDir + "test.pdf"); // Set attributes for printing 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 // Create objects for printer and page settings and PrintDocument PrintPageSettings pgs = new PrintPageSettings(); PdfPrinterSettings ps = new PdfPrinterSettings(); // Set printer name ps.setPrinterName("Microsoft Print to PDF"); // Resultant Printout name ps.setPrintFileName(dataDir + "ResultantPrintout.xps"); // Print the output to file ps.setPrintToFile(true); // Print the document with settings specified above viewer.printDocumentWithSettings(pgs, ps); // Check the print status if (viewer.getPrintStatus() != null) { // An exception was thrown Exception ex = (Exception)viewer.getPrintStatus(); if (ex != null) { // Get exception message } } else { // No errors were found. Printing job has completed successfully System.out.println("printing completed without any issue.."); }
還想要更多嗎?您可以點擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術交流群(642018183),我們很高興為您提供查詢和咨詢。