Aspose.PDF功能演示:使用Java以編程方式打印PDF文件
在不同的公司和組織中,打印PDF文檔通常是一項(xiàng)關(guān)鍵功能,可以通過(guò)在環(huán)境中進(jìn)行配置來(lái)使用Aspose.PDF for Java API 。在本文中,將介紹在Java應(yīng)用程序中可能出現(xiàn)的不同PDF打印方案。
- 使用Java打印PDF文件
- 使用Java打印多個(gè)PDF文檔
- 使用Java打印特定頁(yè)面或頁(yè)面范圍
- 使用Java打印安全的PDF
- 使用Java打印PDF時(shí)檢查打印任務(wù)的狀態(tài)
目前,Java版Aspose.PDF升級(jí)到v20.10版,感興趣的朋友可點(diǎn)擊下方按鈕下載最新版。
點(diǎn)擊下載最新版Aspose.PDF for Java
使用Java打印PDF文件
按照以下步驟使用Java代碼輕松打印PDF文件:
- 創(chuàng)建PdfViewer對(duì)象
- 加載輸入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打印多個(gè)PDF文檔
使用Java語(yǔ)言,打印多個(gè)文件或批量打印PDF文件是一個(gè)簡(jiǎn)單的過(guò)程。您可以按照以下步驟打印許多PDF文件:
- 初始化字符串類(lèi)型列表
- 將多個(gè)PDF文件添加到打印
- 打印PDF文件
以下代碼顯示了如何使用Java語(yǔ)言打印多個(gè)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打印特定頁(yè)面或頁(yè)面范圍
API在打印PDF文件時(shí)為您提供了很多控制??梢愿鶕?jù)需要在打印文件時(shí)使用不同的字段和方法。例如,如果不想打印PDF文件的所有頁(yè)面,而只打印幾頁(yè)。它可以是連續(xù)的頁(yè)面范圍,例如從第3頁(yè)到第7頁(yè),也可以是隨機(jī)的頁(yè)面,如第1,5和6頁(yè)??梢酝ㄟ^(guò)以下步驟涵蓋這兩種情況:
- 初始化PdfViewer對(duì)象
- 設(shè)置打印屬性
- 創(chuàng)建打印機(jī)和頁(yè)面設(shè)置的對(duì)象
- 指定是要打印所有頁(yè)面,特定頁(yè)面還是連續(xù)頁(yè)面范圍
- 使用打印機(jī)和頁(yè)面設(shè)置打印PDF文檔
以下代碼顯示了如何使用Java打印PDF文檔中的特定頁(yè)面或頁(yè)面范圍:
// 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
有時(shí),PDF文件使用密碼保護(hù)或加密,以確保對(duì)數(shù)據(jù)的授權(quán)訪(fǎng)問(wèn)??梢允褂肑ava代碼輕松訪(fǎng)問(wèn)和打印安全或加密的PDF文件,并根據(jù)需要打印文件。需要按照以下步驟操作:
- 使用密碼加載受密碼保護(hù)的PDF輸入文件
- 初始化PdfViewer對(duì)象
- 打印PDF文件
以下代碼基于以下步驟,這些步驟說(shuō)明了如何使用Java代碼打印受保護(hù)的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時(shí)檢查打印任務(wù)的狀態(tài)
將文件發(fā)送到打印機(jī)的打印隊(duì)列后,您可以關(guān)注打印作業(yè)的狀態(tài)。這使您的應(yīng)用程序可以確定打印是否成功。PdfViewer類(lèi)公開(kāi)了getPrintStatus方法,該方法可幫助您檢查打印作業(yè)的狀態(tài)。例如,在將PDF打印為XPS格式時(shí),可以按照以下步驟獲取狀態(tài):
- 加載輸入PDF文件
- 設(shè)置打印屬性
- 創(chuàng)建打印機(jī)和頁(yè)面設(shè)置的對(duì)象
- 設(shè)置打印機(jī)名稱(chēng)
- 將輸出打印到文件
- 檢查打印狀態(tài)
以下代碼顯示了如何使用Java代碼在PDF打印過(guò)程中檢查打印任務(wù)的狀態(tài):
// 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.."); }
還想要更多嗎?您可以點(diǎn)擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢(xún)和咨詢(xún)。