当前位置: 首页 > news >正文

开发PDF时,如何比较 PDF 文件

在 PDF 论坛上,“如何比较 PDF 文件”是一个经常被提到的问题。在开始之前,重要的是要明确你想要比较的内容是什么。


不同的 PDF 文件可能看起来一样吗?

是的,可能。不同的 PDF 创建工具可能会生成在视觉上完全相同的页面,但其内部结构却大不相同。PDF 是一种非常灵活的文件格式,拥有许多功能。比如,你可以使用 Acrobat 和 Ghostscript 分别生成同一个文件的两个 PDF 版本。这两个文件在视觉上(希望如此)是一样的,但它们的文件大小可能不同,内部结构也会有差异。


可以比较 PDF 文件的对象结构吗?

理论上,你可以扫描 PDF 文件的 COS(即对象结构)树,并进行比较。但这通常需要你自己编写一个专门的工具,并且要清楚哪些差异对你来说是重要的。


我可以对 PDF 文件直接用肉眼比较吗?

这其实是大多数人在提到“比较 PDF 文件”时的真正意思。

在开发一个 Java PDF 库时,我们需要进行大量的回归测试,以确保不会破坏现有功能。因此我们需要比较很多文件。我们也倾向于逐个测试每一次更改,这样我们就可以在出问题时快速定位原因。最简单的方法是将 PDF 光栅化(rasterize)并比较输出结果。

我们会提取文本并将 PDF 转换为 PNG 图片。这里是我们使用的 Java 代码。然后我们会将结果与一个基准图像进行比较。尽管仍然需要人工来确认更改内容,但这提供了一种非常快速的回归测试方法。

如果结果完全一致,我们可以很有信心地认为文件没有发生变化。而如果是比较两个不同的 PDF 文件,也可以快速看到具体有哪些变化,特别是如果你让对比工具在 PNG 上高亮显示变动区域,那就更方便了。

我们发现这是一个非常有效的比较 PDF 文件的方式。你觉得什么方法最适合你呢?

你也可以查看我们其他的文章,以更好地理解 PDF 格式。


市面上有哪些商业版的PDF库?

JPedal 是一个 Java PDF 库,使 Java 开发者可以更轻松地在 Java 中处理 PDF 文档。常见的任务只需几行代码粘贴到你的应用程序中就可以解决。而且,由于我们已经持续开发这个 Java PDF 工具包超过 20 年,它可以兼容各种问题 PDF 文件。


我们的主页:PDF 转 HTML5、Java 图像库、Java PDF SDK - IDRsolutions

相关文章:

  • 解答严格模式
  • UE4初学笔记
  • windows下,cursor连接MCP服务器
  • TypeScript语言的计算机网络
  • JSON-LD 教程
  • 不花钱也能玩GPT-4o,国内可用
  • PyTorch使用(4)-张量拼接操作
  • Pinia 实战指南:Vue 3 的新一代状态管理工具
  • Springboot同时支持不同的数据库,Oracle,Postgresql
  • 【AI学习】初步了解TRL
  • pycharm 添加 pyside6 插件并修改 Ui 样式
  • 在亚马逊云科技上使用n8n快速构建个人AI NEWS助理
  • 与Linux操作系统相关的引导和服务
  • 图论:多源最短路
  • 【LeetCode77】组合
  • JS dom节点
  • Django分页教程及示例
  • 【Kafka基础】topics命令行操作大全:高级命令解析(2)
  • 深度解析 C# 中介者模式:设计与实战应用
  • vue3实现markdown工具栏的点击事件监听
  • 河南信阳:对违规吃喝问题不遮丑不护短,露头就打、反复敲打
  • 第一集|好饭不怕晚,折腰若如初见
  • “老中青少”四代同堂,季春艳携锡剧《玲珑女》冲击梅花奖
  • 杭勇已任常州市政协党组成员,此前任常州市委常委、秘书长
  • 陕西河南山西等地将现“干热风”灾害,小麦产区如何防范?
  • 法治日报整版聚焦:儿童能否成为短视频主角?该如何监管?