共计 2337 个字符,预计需要花费 6 分钟才能阅读完成。
本文将介绍如何在 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(); | |
} | |
} | |
} |
正文完