![以编程方式使用 Java 打印 PDF](images/Print-PDF-Java.png#center)
打印 PDF 文档通常是不同公司和组织的关键功能。您可以使用 Java 语言以编程方式轻松打印 PDF 文件。您可以通过 配置 在您的环境中使用 Aspose.PDF for Java API。让我们来看看您的 Java 应用程序中可能出现的不同 PDF 打印场景:
使用 Java 打印 PDF 文件
您可以按照以下步骤使用 Java 代码轻松打印 PDF 文件:
- 创建 PdfViewer 对象
- 加载输入 PDF 文件
- 打印 PDF 文件
下面的代码片段显示了如何使用 Java 以编程方式打印 PDF 文件:
//创建 PdfViewer 对象
PdfViewer viewer = new PdfViewer();
//打开输入 PDF 文件
viewer.bindPdf(dataDir + "Test.pdf");
//打印 PDF 文件
viewer.printDocument();
//关闭 PDF 文件
viewer.close();
使用 Java 打印多个 PDF 文档
使用 Java 语言打印多个文件或批量打印 PDF 文件是一个简单的过程。您可以按照以下步骤打印多个 PDF 文件:
- 初始化一个String类型的列表
- 添加多个 PDF 文件进行打印
- 打印 PDF 文档
以下代码展示了如何使用 Java 语言打印多个 PDF 文件:
// 初始化一个String类型的列表
List<String> files = new ArrayList<>();
// 添加要打印的多个文件
files.add(dataDir + "First.pdf");
files.add(dataDir + "Second.pdf");
// 处理要打印的每个文件
for (String file : files)
{
//创建 PdfViewer 对象
PdfViewer viewer = new PdfViewer();
//打开输入 PDF 文件
viewer.bindPdf(file);
//打印 PDF 文件
viewer.printDocument();
//关闭 PDF 文件
viewer.close();
}
使用 Java 打印特定页面或页面范围
该 API 在打印 PDF 文件时为您提供了很多控制。您可以根据需要在打印文件时使用不同的字段和方法。例如,如果您不想打印 PDF 文件的所有页面而只打印几页。它可以是一些连续的页面范围,例如从第 3 页到第 7 页,也可以是随机页面,例如第 1,5 和 6 页。您可以通过以下步骤涵盖这两种情况:
- 初始化 PdfViewer 对象
- 设置打印属性
- 为打印机和页面设置创建对象
- 指定是否要打印所有页面、特定页面或连续页面范围
- 使用打印机和页面设置打印 PDF 文档
以下代码显示了如何使用 Java 打印 PDF 文档中的特定页面或一系列页面:
// 创建 PdfViewer 对象
PdfViewer viewer = new PdfViewer();
// 打开输入 PDF 文件
viewer.bindPdf(dataDir + "test.pdf");
// 设置打印属性
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing
// 为打印机和页面设置以及 PrintDocument 创建对象
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();
// 设置打印机名称
ps.setPrinterName("Microsoft Print to PDF");
// ps.setPrintRange(2); // 0 = 所有页面; 1 = 选择; 2 = 一些页面
// ps.setFromPage(1);
// ps.setToPage(2);
ps.setPrintRange(1); // 0 = all pages; 1 = selection; 2 = some pages
ps.setSelectedPages(new int[]{1, 3, 5});
// 使用打印机和页面设置打印文档
viewer.printDocumentWithSettings(pgs, ps);
使用 Java 打印加密的 PDF
有时 PDF 文件会使用密码进行保护或加密,以确保对数据的授权访问。您可以使用 Java 代码轻松访问和打印受保护或加密的 PDF 文件,并根据您的要求打印文件。您需要按照以下步骤操作:
- 使用密码加载受密码保护的 PDF 输入文件
- 初始化 PdfViewer 对象
- 打印 PDF 文档
下面的代码基于这些步骤,解释了如何使用 Java 代码打印受保护的 PDF 文件:
//在指定用户或所有者密码时加载安全 PDF 文档
Document document = new Document(dataDir + "Password.pdf" , "userORowner");
//创建 PdfViewer 对象
PdfViewer viewer = new PdfViewer();
//打开输入 PDF 文件
viewer.bindPdf(document);
//打印 PDF 文件
viewer.printDocument();
//关闭 PDF 文件
viewer.close();
使用 Java 打印 PDF 时检查打印任务的状态
文件发送到打印机的打印队列后,您可以密切关注打印作业的状态。这让您的应用程序决定打印是否成功。 PdfViewer 类公开了 getPrintStatus 方法,可帮助您检查打印作业的状态。例如,在将 PDF 打印为 XPS 格式时,您可以按照以下步骤获取状态:
- 加载输入 PDF 文件
- 设置打印属性
- 为打印机和页面设置创建对象
- 设置打印机名称
- 将输出打印到文件
- 检查打印状态
以下代码显示了如何使用 Java 代码在 PDF 打印期间检查打印任务的状态:
// 创建 PdfViewer 对象
PdfViewer viewer = new PdfViewer();
// 打开输入 PDF 文件
viewer.bindPdf(dataDir + "test.pdf");
// 设置打印属性
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing
// 为打印机和页面设置以及 PrintDocument 创建对象
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();
// 设置打印机名称
ps.setPrinterName("Microsoft Print to PDF");
// 结果打印输出名称
ps.setPrintFileName(dataDir + "ResultantPrintout.xps");
// 将输出打印到文件
ps.setPrintToFile(true);
// 使用上面指定的设置打印文档
viewer.printDocumentWithSettings(pgs, ps);
// 检查打印状态
if (viewer.getPrintStatus() != null)
{
// 抛出异常
Exception ex = (Exception)viewer.getPrintStatus();
if (ex != null)
{
// 获取异常消息
}
}
else
{
// 没有发现错误。打印作业已成功完成
System.out.println("printing completed without any issue..");
}
结论
我们已经探索了与在 Java 应用程序中打印 PDF 文件相关的不同场景。您可以使用 Java 语言轻松地将这些功能集成到您的 Web 应用程序、控制台应用程序或您正在使用的任何其他类型的项目中。您可以通过学习 API 参考资料 或 产品文档 进一步探索 API。与PDF打印相关的可能场景还有很多,您可以通过免费支持论坛与我们自由讨论。我们很乐意提供帮助!