使用 Java 对比两个PDF文档之间的差异

不论是在团队写作还是在个人工作中,PDF 文档往往会经过多次修订和更新。掌握 PDF 文档内容的变化对于管理文档有极大的帮助。通过对比 PDF 文档,用户可以快速找出文档增加、删除和修改的内容,更好地了解文档的演变过程,轻松地管理文档。本文将介绍如何在 Java 程序中通过代码快速比较两个 PDF 文档并找出文档之间的内容差异

本文所使用的方法需要用到 Spire.PDF for Java库,可点击下载后再手动将 Spire.Pdf.jar 引入程序中。

使用 Java 对比整个 PDF 文档

对比文档之前需要先将两个文档作为参数传递到 PdfComparer 类的构造函数创建对象,然后再使用 PdfComparer.compare(String fileName) 方法对比这两个 PDF 文档并将对比结果保存到第三个 PDF 文档。 对比结果文档将分两栏展示原文档,增加部分显示在左侧,删除部位显示在右侧。 步骤和代码如下:

  • 创建两个 PdfDocument 类的对象。
  • 使用 PdfDocument.loadFromFile() 方法加载两个 PDF 文档。
  • 创建 PdfComparer 类的对象。
  • 使用 PdfComparer.compare() 方法比较两个文档,并将结果保存为新的 PDF 文档。
复制代码
import com.spire.pdf.PdfDocument;
import com.spire.pdf.comparison.PdfComparer;

public class ComparePDF {
    public static void main(String[] args) {

        // 创建PdfDocument对象并加载第一个PDF文档
        PdfDocument pdf1 = new PdfDocument();
        pdf1.loadFromFile("文件1.pdf");

        // 创建另一个PdfDocument对象并加载另一个PDF文档
        PdfDocument pdf2 = new PdfDocument();
        pdf2.loadFromFile("文件2.pdf");

        // 创建PdfComparer对象
        PdfComparer comparer = new PdfComparer(pdf1, pdf2);

        // 比较两个PDF文档并将比较结果保存到新文档中
        comparer.compare("比较1.pdf");
    }
}

比较结果:

使用 Java 对比 PDF 文档的指定页面

初始化 PdfComparer 之后,还可以使用 PdfComparer.getOptions().setPageRanges() 方法限制用于对比的 PDF 页面范围。步骤和代码如下:

  • 创建两个 PdfDocument 类的对象。
  • 使用 PdfDocument.loadFromFile() 方法加载两个 PDF 文档。
  • 创建 PdfComparer 类的对象。
  • 使用 PdfComparer.getOptions().setPageRanges() 方法设置要对比的页面范围。
  • 使用 PdfComparer.compare() 方法比较两个文档,并将结果保存为新的 PDF 文档。
复制代码
import com.spire.pdf.PdfDocument;
import com.spire.pdf.comparison.PdfComparer;

public class ComparePDFPageRange {
    public static void main(String[] args) {
        // 创建PdfDocument对象并加载第一个PDF文档
        PdfDocument pdf1 = new PdfDocument();
        pdf1.loadFromFile("文件1.pdf");

        // 创建另一个PdfDocument对象并加载另一个PDF文档
        PdfDocument pdf2 = new PdfDocument();
        pdf2.loadFromFile("文件2.pdf");

        // 创建PdfComparer对象
        PdfComparer comparer = new PdfComparer(pdf1, pdf2);

        // 设置要比较的页面范围
        comparer.getOptions().setPageRanges(1, 1, 1, 1);

        // 比较两个PDF文档并将比较结果保存到新文档中
        comparer.compare("比较2.pdf");
    }
}

比较结果

以上示例可以看出用 Spire.PDF for Java 对比 PDF 文档的操作十分简单,仅需几行代码就能快速找出文档之间的差异。要了解该Java库支持的其他功能,可前往 Spire.PDF for Java 教程查看。

相关推荐
PPPPickup30 分钟前
金证秋招笔试
java·开发语言
不正经学生1 小时前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
ycjunhua1 小时前
Spring AI 2.0 GA:ToolCallingAdvisor 重构与 Java Agent 新范式
java·人工智能·spring
开源必胜1 小时前
Future的异常处理以及CompletableFuture传播链、异常处理
java
林森lsjs2 小时前
队列 FIFO 原理 & 手撕两种队列实现(链表 + 循环数组)—数据结构陆
java·开发语言·数据结构·队列
lisin-lee-cooper3 小时前
简单聊聊 OpenFeign 框架源码
java·微服务
Buke..3 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
linux-hzh3 小时前
百日算法修炼 · Day 15
java·算法
半生过往3 小时前
前端学 Java 课程笔记
java·前端·笔记
mmsx4 小时前
基于 Android 的校园信息管理系统源码
android·java·okhttp