比较使用两个不同版本的 IText(版本 2 和 7)生成的 PDF



目前,我们正在使用(IText版本2 + Flying saucer(从HTML创建PDF,并且由于版本2的限制,我们计划迁移到IText版本7(我现在正在使用试用版(。作为初步分析的一部分,我使用版本 2 和版本 7 为同一 HTML 生成了 PDF。

我试图比较 pdf 字节。有些 PDF 匹配,但有些不匹配。

我想知道我们是否可以依靠pdf字节比较来比较使用两个不同的IText为同一HTML生成的PDF。有没有更好的方法来比较这两个 PDF?

我想知道我们是否可以依靠 pdf 字节比较来比较使用两个不同的 IText 为同一 HTML 生成的 PDF。

不。首先,您不能依赖直接的字节比较,因为iText插入了创建日期和文档ID,即使使用相同的iText版本,它们也会更改。

有没有更好的方法来比较这两个 PDF?

我们使用 CompareTool 类在内部解决此问题进行测试。如果您希望即使底层内容发生变化(例如绘制 4 条线与直接绘制正方形(的视觉输出与像素相同,那么使用 Ghostscript 的compareVisually()可能就足够了。

话虽如此,我怀疑视觉输出是否相同。 pdfHTML 和 iText 7 多年来经历了巨大的改进,因此很可能在 2 中存在一些视觉错误/差异,而 7 中不再存在,或者 pdfHTML 中支持的 HTML 标签/CSS 属性在 FlyingSaucer 中不受支持。

免责声明:我为 iText 工作。

不久前我偶然发现了一个开源项目,快速搜索发现了另一个项目。我没有自己尝试过,但我会试一试:

https://github.com/vinsguru/pdf-util

https://github.com/red6/pdfcompare

两者都基于PdfBox,并提供逐像素的imge比较,以及文本比较等其他功能。

最新更新