本文将介绍如何在Java应用程序中打印PDF文档。个别有以下三种常见打印形式:

  • 静默打印
  • 显示打印对话框打印
  • 打印PDF时自定义纸张大小
应用工具:Free Spire.PDF for Java
创立运行环境:

形式 1:通过官网下载组件,解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA中。具体步骤可参考下图。

形式 2:通过Maven仓库装置产品及导入相干依赖包。在pom.xml文件中配置Maven仓库门路,及指定Free Spire.PDF for Java的Maven依赖。

<repositories><repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories><dependencies><dependency><groupId>e-iceblue</groupId><artifactId>spire.pdf.free</artifactId><version>2.6.3</version></dependency></dependencies>

配置实现后,在IDEA中,您只需点击"Import Changes"即可导入JAR包;在Eclipse中,则需点击"Save"按钮。

代码演示

静默打印
import com.spire.pdf.*;import java.awt.print.*;public class Print {    public static void main(String[] args) {        //加载文档        PdfDocument pdf = new PdfDocument();        pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\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();        }    }}
显示打印对话框打印PDF文档
import com.spire.pdf.*;import java.awt.print.*;public class Print {    public static void main(String[] args) {        //加载文档        PdfDocument pdf = new PdfDocument();        pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\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();            }        }    }}
打印时自定义纸张大小
import com.spire.pdf.*;import java.awt.print.*;public class Print {    public static void main(String[] args) {        //加载文档        PdfDocument pdf = new PdfDocument();        pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\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();        }    }}