2012-04-03 144 views
0

我正在编写一个库,使用大虾报告生成PDF报告。PDF“规范化”

我希望获得宝贵的功能之一是能够提供测试报告生成的手段。

问题是,两个视觉上相同的PDF可以有不同的文件。

有没有办法确保2个视觉上相等的PDF在文件中具有相同的位?像XML规范化。

回答

3

即使PDF对象的内部结构是非常不同可能会出现2个不同PDF的“视觉相等”(或视觉相似性:每个页面只有很小的百分比像素)。 (想想一个'文本'页面,它可以使用真实字体或可以使用'轮廓'矢量图形为每个字形的形状...)

这意味着这种平等只能通过将两个文件分辨率与页面图像相同,然后逐个像素地比较两个图像集。比较的结果可能是另一个像素图像,它将所有不同的像素显示为红色,或者根据您的偏好只显示不同意的像素数量。

可编写脚本的方式与ghostscriptpdftkImageMagick帮助我在这个答案描述要做到这一点:

或者,你可以看看

(可用于Linux,Unix,Mac OS X和Windows):它也可以直观地比较两个PDF文件。


[你字面的问题是这样的:“?有没有一种方法,以确保2视觉上的等PDF具有相同的位在文件中” - 然而,我不确定你是否真的这么想 - 因此我的答案如下。否则,我不得不说:如果两个PDF文件在视觉上平等,公正产生相应的md5sum,以确定他们是否有在每个文件同位...]