使用 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 教程查看。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
2020-10-30 Java 设置PDF文档过期时间(有效期)
2018-10-30 C# 插入文本框到PPT幻灯片