这篇文章介绍如何在Java应用程序中打印PDF文档以及进行一些打印设置,包括指定打印机、自定义纸张大小、设置打印参数、以及显示打印对话框等。
导入jar文件
本文所使用的PDF类库是Spire.PDF for Java, 如果你的项目是maven工程的话,在pom.xml文件中添加如下依赖,即可导入Spire.PDF for Java库jar文件。
com.e-iceblue
e-iceblue
http://repo.e-iceblue.com/nexus/content/groups/public/
e-iceblue
spire.pdf
2.1.3
e-iceblue
spire.pdf.common
2.1.3
如果不是maven,可通过官网下载最新的Spire.PDF for Java的jar文件(是一个压缩包,解压缩后在lib文件夹下可找到jar文件),然后按步骤将jar文件添加至程序中,下载地址。
打印类代码参考
import com.spire.pdf.PdfDocument;
import javax.print.PrintService;
import java.awt.print.*;
public class PrintPDF {
public static void main(String[] args) throws PrinterException {
PdfDocument loDoc = new PdfDocument("Additional.pdf");
PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
PageFormat loPageFormat = loPrinterJob.defaultPage();
Paper loPaper = loPageFormat.getPaper();
loPaper.setSize(500,600);
loPageFormat.setPaper(loPaper); //自定义纸张大小
loPrinterJob.setCopies(2); //设置打印份数
loPrinterJob.setPrintable(loDoc,loPageFormat);
//指定打印机
String printerName ="Microsoft XPS Document Writer";
PrintService[] pservices = PrinterJob.lookupPrintServices();
if (pservices.length > 0) {
for (PrintService ps : pservices) {
if (ps.getName().contains(printerName)) {
try {
loPrinterJob.setPrintService(ps);
break;
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
try {
loPrinterJob.print(); //进行打印
/*//显示打印对话框
if(loPrinterJob.printDialog()) {
//Print the pdf document
loPrinterJob.print();
}*/
} catch (PrinterException e) {
e.printStackTrace();
}
}
}