当前,由于版本2的限制,我们正在使用(IText版本2 +飞碟)从HTML创建PDF,并且我们计划迁移到IText版本7(我现在正在使用试用版)。初步分析,我使用同一HTML的版本2和版本7生成了PDF。
我试图比较pdf字节。一些PDF匹配,但有些不匹配。
我想知道我们是否可以依靠pdf字节比较来比较使用同一HTML的两种不同的IText生成的PDF。比较这两个PDF有更好的方法吗?
答案 0 :(得分:4)
我想知道我们是否可以依靠pdf字节比较来比较使用同一HTML的两种不同的IText生成的PDF。
不。首先,您不能依赖直接字节比较,因为iText会插入一个创建日期和一个文档ID,即使使用相同的iText版本,它们也会发生变化。
比较这两个PDF有更好的方法吗?
我们使用CompareTool class在内部进行测试。如果您希望即使基础内容发生了变化,视觉输出在像素以下都是一样的,那么使用Ghostscript 可能的compareVisually()
就足够了,即使基础内容发生了变化(例如,绘制4行与直接绘制一个正方形)。
话虽如此,我怀疑视觉输出是否相同。多年来,pdfHTML和iText 7进行了重大改进,因此很可能7中不再存在2中的一些视觉错误/差异,或者pdfHTML中不支持的HTML标记/ CSS属性在7中不再存在。飞碟。
免责声明:我为iText工作。
答案 1 :(得分:0)
前段时间,我偶然发现了一个开源项目,然后又进行了一次快速搜索。我没有亲自尝试过,但可以尝试一下:
https://github.com/vinsguru/pdf-util
https://github.com/red6/pdfcompare
两者均基于PdfBox并提供逐像素的像素比较,还提供文本比较等其他功能。