用于比较大量PDF文件的工具?

我需要比较大量的PDF文件的光学内容。 由于PDF文件是在不同的平台上创build的,而且软件版本不同,所以存在结构上的差异。 例如:

  • 文本块可以是不同的
  • 写入顺序可以不同
  • 该位置可以是不同的像素

它应该比较人的内容而不是内部的结构。 我想要testing我们使用的不同版本的PDF生成器之间的回归。

因为我们没有写这样的工具。 您可以下载i-net PDF内容比较器并使用它。 我希望能帮助其他同样的问题。 如果您遇到问题,或者您有我们的反馈意见,请联系我们的支持。

在这里输入图像描述

实际上有一个diffpdf工具。

http://www.qtrac.eu/diffpdf.html

它的弱点是当添加新的文本部分移动到新的页面时,反应不好。 例如,如果应将旧的第4页与第5页的末尾和第6页的开头进行比较,则需要移动参数以分别比较两个切片。

我用了一个自制的脚本

  • 将两个PDF上的所有页面转换为位图
  • 将PDF 1的页面着色成红白色
  • 在PDF 2的页面上将白色变为透明
  • 从PDF 1的相应页面的顶部覆盖PDF 2中的每个页面
  • 在多个核上运行转换/着色和并行重叠

使用的软件:

  • 用于PDF到位图转换的GhostScript
  • ImageMagick用于着色,透明度和覆盖
  • inotify同步并行进程
  • 任何支持PNG的图像查看器来查看结果

优点:

  • 简单的实现
  • 所有使用的工具都是开源的
  • 非常适合寻找布局上的小差异

缺点:

  • 转换很慢
  • PDF之间的主要差异(例如分页)导致一团糟
  • 位图不可缩放
  • 只适用于黑白文字和图表
  • 没有易于使用的graphics用户界面

我一直在寻找一种工具,可以在PDF / PostScript层面上做到这一点。

以下是我们的脚本如何调用实用程序(请注意,ImageMagick在幕后使用GhostScript执行PDF-> PNG转换):

$ convert -density 150x150 -fill red -opaque black +antialias 1.pdf back%02d.png $ convert -density 150x150 -transparent white +antialias 2.pdf front%02d.png $ composite front01.png back01.png result01.png # do this for all pairs of images 

我似乎无法看到这里,所以这里是:通过超级用户:如何比较两个PDF文件之间的差异? (回答#229891,由@slestak) ,有

https://github.com/vslavik/diff-pdf

(Ubuntu Natty的构build步骤可以在get-diff-pdf.sh中find)

据我所知,它基本上覆盖了每个页面的文本/graphics的pdf(s),让你很容易看到是否有任何改变…

干杯!

我们还使用了pdftotext (请参阅Sklivvz的答案)来生成ASCII版本的PDF和wdiff来比较它们。

使用pdftotext的-layout开关来增强可读性,并获得布局变化的一些想法。

为了从wdiff获得漂亮的输出,使用这个包装脚本:

 #!/bin/sh RED=$'\e'"[1;31m" GREEN=$'\e'"[1;32m" RESET=$'\e'"[0m" wdiff -w$RED -x$RESET -y$GREEN -z$RESET -n $1 $2 

我认为你最好的办法是将PDF转换成图像的体面分辨率和图像比较。

要从PDF生成图像,您可以使用Adobe PDF Library或者以最佳方式build议的解决scheme将PDF文件转换为tiff文件 。

为了比较生成的TIFF文件,我发现GNU tiffcmp (用于GnuWin32 tiff的 windows部分)和tiffinfo做得很好。 使用tiffcmp -l并计算输出的行数以find任何差异。 如果您很高兴有less量内容更改(例如,抗锯齿差异),请使用tiffinfo来计算像素总数,然后生成百分比差异值。

顺便说一下,任何人做简单的PDF比较结构没有改变,可以使用命令行比较和忽略某些模式,例如GNU diff 2.7:

  diff --brief -I xap:-I xapMM:-I / CreationDate -I / BaseFont -I / ID --binary --text 

这仍然有问题,它并不总是捕捉生成的字体名称的变化。

我们的产品,PDF比较器 – http://www.premediasystems.com/pdfc.html “ – 将会非常高效和高效地完成这个任务,它也不是免费的,而且是一个仅适用于Mac OS X的应用程序。

根据您的需求,转换为文本解决scheme将是最简单和最直接的。 我确实认为位图的想法很酷。

blubeam pdf软件将为您做这个

您可以批量比较pdf文件与Tarkware PDF 比较器 。 但它不是免费的,需要Adobe Acrobat。