如何比较 .pdf 文件的内容(不包括文件名)?

如何比较 .pdf 文件的内容(不包括文件名)?

我通常使用 WinMerge 查看文件之间的差异,但在这种情况下它没有帮助。我比较的文件已知有不同的文件名,当两个包含相同文档的文件有不同的文件名时,就会产生误报。

我有一个文件夹,里面有很多目录,代表我公司与之有业务往来的所有供应商,其中包括许多收据和发票的 .pdf 文件。这是主供应商列表。发票和收据的命名方式使得如果没有周围的目录结构提供上下文,这些名称就没有意义。例如,这里有“Vendors/Company Foo/Product Bar/Invoice#3.pdf”

然后我有另一个文件夹,里面有很多收据和发票,以前与主供应商列表分开维护,应该包括手动创建的每张收据和发票的副本,这些收据和发票已输入到主供应商目录结构中的相应条目中。这些收据和发票应该被重命名,以便会计人员更容易阅读和了解它们指的是什么。例如,这里有“Taxes/CompanyFoo ProductBar.pdf”。

我在主供应商列表的顶层文件夹中搜索了 .pdf 类型的文件,以便我的搜索结果包括目录结构中所有供应商的收据和发票。然后我将这些 .pdf 文件复制到桌面上的另一个文件夹中,以便可以比较它们。我使用 WinMerge 将这些文件与“taxes”文件夹中的文件进行比较,以查看“taxes”文件夹中是否有任何文件不存在于“主供应商”目录中,反之亦然。

但是 WinMerge 会因为文件名不匹配而将文件视为不同。我需要知道文件内容是否不同,无论文件名是什么。

有数百个这样的文件,如果其中任何一个文件位于“税务”文件夹中但不在其对应的“主供应商”目录中,我就需要纠正这个问题并正确地归档它们。

有人可以推荐一个可以做到这一点的工具吗?

答案1

如果你有某种可用的 unix 环境(如果你在 Windows 上,我建议赛格威)你可以很容易地找到当前目录下的重复文件,如下所示:

find . -type f -exec md5sum '{}' '+' | sort | uniq -D -w 32

输出将是 md5sum 和每个至少有一个重复项(相同的 md5sum)的文件的名称。重复项按字母顺序依次显示。如果不是当前目录,请将.后面的内容替换为您要查找的路径。find

编辑:

相反,要获取没有重复的文件,您可以使用

find . -type f -exec md5sum '{}' '+' | sort | uniq -u -w 32

这将仅打印当前目录下没有任何重复的文件。

答案2

我觉得i-net PDF内容比较器将会很有帮助。

现为 2.0 版,提供 GUI 和灵活的定价选项。仍有 30 天免费试用版,您可以借此检查软件的各个方面。

比较结果

答案3

  1. 你可以(必须,真的)使用文档差异WinMerge 插件,如果您通过眼睛比较内容
  2. CompareIt! 可以渲染(一般般)并在比较窗口 pdf 文件时进行可视化无需额外插件
  3. 差异PDF更好地比较和显示比较的文件(参见页面截图),跨平台

作为替代解决方案你可以想想关于以相同的名称存储每个 PDF 的纯文本副本(从 with、fe、pandoc 转换而来)并仅使用任何工具比较文本版本

答案4

尝试使用“PDF Compare”应用程序,它可以在像素级别比较 pdf 文档元数据和页面图像:

https://www.microsoft.com/en-us/store/p/pdfcompare/9n9dmzjbz2nl#

相关内容