保存DiffPDF / ComparePDF命令行的输出。 - 比较PDF的文件夹

时间:2012-06-22 15:03:25

标签: pdf automation comparison imagemagick diff

我们必须将一个文件夹中的大约1500个PDF与另一个文件夹中的1500个PDF进行比较,以检查视觉差异。 我们发现Windows的DiffPDF(和comparePDF命令行版本)比我们的自动Acrobat Pro比较快得多。

到目前为止,我已经使用过:

comparepdf -v=2 =c=a old.pdf new.pdf

但问题是它只返回“这些文件不同”。有谁知道从命令行保存输出的任何方法?您可以从GUI执行此操作,但这意味着使用类似TestCOmplete的东西来自动化它:(

还是有更好的方法可以直观地比较2个PDF - 输出/突出显示/

C#.net库的加分点。

2 个答案:

答案 0 :(得分:7)

您可以查看类似问题的这些答案:

但是,我不知道这些中的任何一个是否比您的自动化Acrobat Pro比较更快...请告诉我,如果您发现了,是吗?

快捷方式:

为简单起见,我们假设您要比较的输入文件足够相似,每个只有1页。 (对于多页输入,请扩展此答案的基本思想......)

这两个最重要的命令可归结为:

compare.exe ^
    %input1% ^
    %input2% ^
    -compose src ^
    %output%.tmp.pdf

pdftk.exe ^
    %output%.tmp.pdf ^
    background %input1% ^
    output %output%.pdf
  • 第一个命令生成一个PDF,所有差分像素均以红色显示。 (此处使用默认分辨率,72 dpi。对于像素差异的更细粒度视图,添加-density 200 (这意味着:200 dpi)或更高 - 但是您的处理时间将相应增加,因为输出所需的磁盘空间......)
  • 第二个命令尝试将生成的PDF与从$ {input1}中获取的背景合并。

或者,您可以在-verbose -debug coder命令之后添加compare,以便更好地了解正在发生的事情。

compare.exe是伟大的,伟大的ImageMagick系列实用程序(适用于Linux,Windows,Unix和MacOSX)的命令行工具。但它需要Ghostscript安装才能用作“委托”才能处理PDF输入。 pdftk.exe也是一个命令行实用程序,可用于相同的平台。这两款免费软件。

在第一个命令之后,您将拥有一个红色像素的输出文件,其中页面上存在差异。

在第二个命令之后,您将在第一个输入PDF的上下文中输出所有红色“diff”像素。

示例输出:

以下是两个1页PDF文件的屏幕截图,其内容有所不同:

Example PDF file 1 Example PDF file 2


以下是上述两个命令产生的输出的屏幕截图:

  • left 一个显示中间结果(在第一个命令之后),只有差异像素显示为红色(相同像素为白色)。
  • 右侧上的屏幕截图显示红色差异像素,但这次输入的PDF文件编号为1(灰色)背景(在第二个命令之后)。

Red difference pixels only; identical pixels are white Red difference pixels with PDF file 1 as background context


(PDF输入文件由beautiful DiffPDF工具的作者Mark Summerfield提供。)

答案 1 :(得分:2)

我遇到了同样的问题,diffpdf快速而且很好但仅限GUI。 [comparepdf]是控制台之一,但仅报告退出代码(没有差异本身)。 [diff-pdf]同时具有控制台模式和diff.pdf输出,但速度很慢,输出也不友好。

我试图将所需的代码添加到diffpdf, 你可以在这里找到它:http://github.com/taurus-forever/diffpdf-console