比较 PDF 文件可能是一项乏味的任务,尤其是当您需要识别多个文档之间的差异时。幸运的是,GroupDocs.Comparison for Java API 为您提供了以编程方式比较 PDF 文件的能力。在本文中,我们将逐步向您展示如何使用 Java 代码比较两个 PDF 文件,包括如何处理受密码保护的 PDF。我们还将演示如何比较两个以上的 PDF 文件以及如何接受或拒绝任何已识别的更改。因此,如果您准备好简化 PDF 比较工作流程,请继续阅读!

使用 Java API 比较 PDF 文档以查找差异

此处讨论以下主题:

如果您对在线比较 PDF 文件 感兴趣,请访问由 GroupDocs 提供支持的在线 PDF 文件比较工具

用于比较 PDF 文件的 Java API

在本文中,我将利用 GroupDocs.Comparison for Java API 来比较 PDF 文档,因为此 API 可以在多个 PDF 文档之间进行比较。此外,它还允许比较 Java 应用程序中具有相同文档格式的各种其他文件。

您可以从 下载部分 下载 JAR 文件,或在您的 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 文档的多个副本之间的差异(添加、删除),您可以比较这些文件。比较 PDF 内容后,您可以生成一个新文档,突出显示所有已识别的更改。以下步骤演示了如何使用 Java 比较两个 PDF 文档并突出显示任何差异。

  • 使用 Comparer 类加载第一个 PDF 文档。
  • 使用 add 方法将第二个文件添加到 Comparer。
  • 比较两个 PDF 文件并通过调用比较方法获取更改摘要。

以下 Java 代码片段显示了如何比较 PDF 文档并突出显示结果文档中的更改。

// 使用 Java 比较两个 PDF 文档并突出显示更改

Comparer comparer = new Comparer("path/document-ver1.pdf");
comparer.add("path/document-ver2.pdf");

comparer.compare("path/comparison-result.pdf");

使用 Java 接受或拒绝 PDF 文件的已识别更改

与“跟踪更改”功能非常相似,也可以通过编程接受或拒绝 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));

使用 Java 比较受密码保护的 PDF 文档

可以通过在加载文档时提供密码来比较受密码保护的文件。以下步骤演示了如何使用 Java 比较受密码保护的 PDF 文档的内容:

  • 为源文档和目标文档准备加载选项,提供必要的密码。
  • 使用 Comparer 类加载源文档。
  • 使用准备好的加载选项将目标文档添加到 Comparer。
  • 通过调用比较方法获取差异摘要。

下面的 Java 示例比较了两个受密码保护的 PDF 文件,并在单独的文档中突出显示了已识别的差异。

// 使用 Java 比较受密码保护的 PDF 文档
 
Comparer comparer = new Comparer("path/protected-document-ver1.pdf", new LoadOptions("SourceFilePassword"));
comparer.add("path/protected-document-ver2.pdf", new LoadOptions("TargetFilePassword"));

comparer.compare("path/protected-files-comparison-result.pdf");

使用 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");

获取免费的 API 许可证

您可以 获得免费的临时许可证 以不受评估限制地使用 API。

结论

总之,我们介绍了使用 Java 比较两个或多个 PDF 文件、突出显示差异以及以编程方式接受或拒绝已识别的更改。此外,我们探讨了如何在 Java 应用程序中比较受密码保护的 PDF 文档。

您可以控制许多其他 自定义 来管理比较结果。您可以调整比较敏感度,选择只显示摘要页面,忽略差距等等。

构建您自己的 PDF 比较应用程序

以下是一些重要链接,可帮助您构建自己的文档比较应用程序。

文档 | API 参考 | 支持的文件格式

运行示例 - GitHub | 免费支持论坛 | 发行说明

也可以看看