3

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

到目前为止,我使用过:

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

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

或者有没有更好的方法来比较 2 个 PDF 的视觉 - 输出/突出显示/

C# .net 库的奖励积分。

4

2 回答 2

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 codercompare命令之后添加以更好地了解正在发生的事情。

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

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

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

示例输出:

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

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


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

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

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


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

于 2012-06-22T18:47:21.443 回答
2

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

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

于 2013-05-22T22:50:18.763 回答