Java 列印PDF文件的3種情況
阿新 • • 發佈:2019-05-14
以下內容歸納了通過Java程式列印PDF文件時的3種情形。即:
- 靜默列印
- 顯示列印對話方塊列印
- 列印PDF時自定義紙張大小
使用工具:Spire.PDF for Java
Jar匯入:
方法1:通過官網下載jar包。
方法2:通過maven庫匯入。參考匯入方法。
Java程式碼示例
【示例1】靜默列印
即通過使用預設印表機直接列印PDF文件。列印時,我們可以設定列印份數,設定紙張列印頁邊距等。
import com.spire.pdf.*; import java.awt.print.*; public class Print { public static void main(String[] args) { //載入文件 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("Sample.pdf"); PrinterJob loPrinterJob = PrinterJob.getPrinterJob(); PageFormat loPageFormat = loPrinterJob.defaultPage(); Paper loPaper = loPageFormat.getPaper(); //刪除預設頁邊距 loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight()); //設定列印份數 loPrinterJob.setCopies(2); loPageFormat.setPaper(loPaper); loPrinterJob.setPrintable(pdf,loPageFormat); try { loPrinterJob.print(); } catch (PrinterException e) { e.printStackTrace(); } } }
【示例2】顯示列印對話方塊列印PDF文件
import com.spire.pdf.*; import java.awt.print.*; public class Print { public static void main(String[] args) { //載入文件 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("Sample.pdf"); PrinterJob loPrinterJob = PrinterJob.getPrinterJob(); PageFormat loPageFormat = loPrinterJob.defaultPage(); Paper loPaper = loPageFormat.getPaper(); //刪除預設頁邊距 loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight()); loPageFormat.setPaper(loPaper); loPrinterJob.setPrintable(pdf,loPageFormat); //顯示列印對話方塊 if (loPrinterJob.printDialog()) { try { loPrinterJob.print(); } catch (PrinterException e) { e.printStackTrace(); } } } }
【示例3】列印時自定義紙張大小
import com.spire.pdf.*; import java.awt.print.*; public class Print { public static void main(String[] args) { //載入文件 PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("Sample.pdf"); PrinterJob loPrinterJob = PrinterJob.getPrinterJob(); PageFormat loPageFormat = loPrinterJob.defaultPage(); //設定列印紙張大小 Paper loPaper = loPageFormat.getPaper(); loPaper.setSize(500,600); loPageFormat.setPaper(loPaper); loPrinterJob.setPrintable(pdf,loPageFormat); try { loPrinterJob.print(); } catch (PrinterException e) { e.printStackTrace(); } } }
如果需要更詳細的列印設定,可以在PrinterJob下設定相應的引數,可參考:https://www.programcreek.com/java-api-examples/java.awt.print.PrinterJob
擴充套件:C# 列印PDF文件的10種方法,請參閱這篇文章。(注:使用Spire.PDF for .NET)
(本文