我们之前讨论过如何用 Java 比较两个受密码保护的 PDF 文档。但是如果我们想要比较的不仅仅是两个文件呢?好吧,今天我们将学习如何做到这一点!我们还将学习如何接受或拒绝文档中的更改以获得我们想要的最终版本。

最近的简短系列文章已经涵盖了 Java 如何:
如果您对在线比较 PDF 文件 感兴趣,请访问由 GroupDocs 提供支持的在线 PDF 文件比较工具。
到本文结束时,您还将很好地了解如何:
在我们开始之前,让我们确保我们的开发环境已经准备就绪。
用于比较两个或多个 PDF 文件的 Java 库
相信您现在已经熟悉了文档比较 Java API。我将使用相同的 GroupDocs.Comparison for Java 继续前进。您可以使用以下配置下载 或快速检查基于 maven 的应用程序的开发环境:
<repository>
<id>groupdocs-artifacts-repository</id>
<name>GroupDocs Artifacts Repository</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-comparison</artifactId>
<version>23.3</version>
</dependency>
现在,让我们继续讨论真正的东西!
使用 Java 比较两个以上的 PDF 文件
比较多个文件与只比较两个文件非常相似。我们所要做的就是将更多文件添加到比较器,然后像往常一样点击比较。以下是比较多个 PDF 文档并突出显示已识别更改的步骤:
- 使用 Comparer 类加载第一个 PDF 文件。
- 使用 add 方法添加要与 Comparer 进行比较的任何其他文档。
- 使用比较方法比较所有后续的 PDF 文件,并获得差异的更改和摘要。
以下示例显示了如何在 Java 中比较多个 PDF 文件并在生成的文档中获取更改。
// 使用 Java 比较多个 PDF 文档
Comparer comparer = new Comparer("path/document-1.pdf");
comparer.add("path/document-2.pdf");
comparer.add("path/document-3.pdf");
comparer.add("path/document-4.pdf");
comparer.compare("path/multiple-pdf-comparison-result.pdf");
使用 Java 比较并接受或拒绝 PDF 文件的已识别更改
与 Microsoft Word 中的“跟踪更改”功能非常相似,也可以通过编程接受或拒绝 PDF 文档中检测到的每个更改。下面的步骤演示了如何比较然后接受或拒绝 PDF 文档中已识别的更改。
- 使用 Comparer 类加载源和目标 PDF 文件。
- 使用比较方法比较加载的文档。
- 使用 getChanges 方法获取标识的更改。
- 现在遍历更改并设置适当的 ComparisonAction。
- 选择接受以采用更改
- 选择拒绝以拒绝更改。
- 调用 applyChanges 方法以获取包含已接受更改的结果文档。
以下代码片段比较两个 PDF 文档,然后接受一个已识别的更改,然后使用 Java 拒绝另一个文档。
// 通过使用 Java 比较 PDF 文档来接受和拒绝已识别的更改
Comparer comparer = new Comparer("path/document-1.pdf");
comparer.add("path/document-2.pdf");
ChangeInfo[] changes = comparer.getChanges();
changes[0].setComparisonAction(ComparisonAction.REJECT);
changes[1].setComparisonAction(ComparisonAction.ACCEPT);
comparer.applyChanges("path/accept-reject-change.pdf", new ApplyChangeOptions(changes));
获取免费的 API 许可证
您可以 获得免费的临时许可证 来使用没有评估限制的 API 来比较多个 PDF 文档。
构建您自己的 PDF 比较应用程序
以下是一些重要链接,可帮助您构建自己的文档比较应用程序。
特点 | 文档 | API 参考 | 运行示例 - GitHub | 免费支持论坛 | 发行说明