这篇文章介绍如何在Java应用程序中打印PDF文档以及进行一些打印设置,包括指定打印机、自定义纸张大小、设置打印参数、以及显示打印对话框等。
导入jar文件
本文所使用的PDF类库是Spire.PDF for Java, 如果你的项目是maven工程的话,在pom.xml文件中添加如下依赖,即可导入Spire.PDF for Java库jar文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.pdf</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.common</artifactId>
<version>2.1.3</version>
</dependency>
</dependencies>
如果不是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();
}
}
}
文中只介绍了部分打印设置,如果需要更详细的设置,可以自己在PrinterJob下设置相应的参数,在线帮助文档:https://www.programcreek.com/java-api-examples/java.awt.print.PrinterJob。
本文介绍如何使用Spire.PDFforJava库在Java应用程序中打印PDF文档,并提供了自定义纸张大小、设置打印份数和指定打印机等打印设置的示例代码。
2209

被折叠的 条评论
为什么被折叠?



