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

Jus*_*per 3 pdf comparison diff automation imagemagick

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

到目前为止我用过:

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

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

或者是否有更好的方法可以对输出/突出显示的2个PDF进行比较

C#.net库的加分点.

Kur*_*fle 7

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

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

捷径:

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

任何这样的比较最重要的两个命令归结为:

compare.exe ^
    %input1% ^
    %input2% ^
    -compose src ^
    %output%.tmp.pdf
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

示例输出:

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

示例PDF文件1 示例PDF文件2


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

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

仅红色差异像素;  相同的像素是白色的 红色差异像素与PDF文件1作为背景上下文


(PDF输入文件由美丽的DiffPDF工具的作者Mark Summerfield提供.)