Language agnostic 有没有办法在不比较详细内容的情况下知道两个pdf的相似性

Language agnostic 有没有办法在不比较详细内容的情况下知道两个pdf的相似性,language-agnostic,pdf,similarity,Language Agnostic,Pdf,Similarity,我想知道两个pdf文件的相似性,但我不想做详细内容的比较。从它的外部结构有什么解决办法吗?有可能吗?谢谢 您可以通过对两个文件(如md5)运行哈希来判断它们是否不同,但这并不能告诉您它们之间的相似程度 有一些二进制diff程序可以告诉您两个二进制文件的不同之处,并给出合理的结果,但许多二进制文件,尤其是文档容器,在只有微小的内部内容差异时,可以显示大量二进制差异 我不熟悉pdf格式的细节。也许其他人知道一种内置的机制可能会有所帮助。这听起来可能很难,但以下是PDF元数据的一些低挂果实,按难度排序

我想知道两个pdf文件的相似性,但我不想做详细内容的比较。从它的外部结构有什么解决办法吗?有可能吗?谢谢

您可以通过对两个文件(如md5)运行哈希来判断它们是否不同,但这并不能告诉您它们之间的相似程度

有一些二进制diff程序可以告诉您两个二进制文件的不同之处,并给出合理的结果,但许多二进制文件,尤其是文档容器,在只有微小的内部内容差异时,可以显示大量二进制差异


我不熟悉pdf格式的细节。也许其他人知道一种内置的机制可能会有所帮助。

这听起来可能很难,但以下是PDF元数据的一些低挂果实,按难度排序

  • 文档元数据,如
    电子书标题
    标题
  • 文档中的页数(计数
    /Page
    指令)
  • 比较每个页面的元数据,例如
    MediaBox
    CropBox
    BleedBox
    TrimBox
  • 寻找嵌入的内容,如图像和文档特定的字体,看看它们是否完美匹配
  • 拉出纯文本并比较单词:字数、最常用的单词等。对于西语,您可以通过字符串查找器运行PDF,如Linux上的
    strings
    。或者您可以进入该文件并找到
    (废话废话废话)Tj
    ,这是大多数文本存储在PDF内容中的方式
  • 最后,您可以通过使用GhostScript或其他库将它们转换为光栅格式,然后以这种方式进行比较来作弊。如果你转换成像100px这样的低分辨率,那么粗略的细节可能看起来很相似


    如果你从未直接使用过PDF,那就不可怕了!它只是一个文本文件(解压后),您可以逐行或多或少地解析它。我在回答中进一步讨论了PDF。

    PDF不仅仅是一个文本文件。这是一个B-树的二进制转储。使用压缩对象,您还可以在其他二进制对象中压缩对象数据,以便看不到它们


    如果你想做低级文本操作,你真的需要使用一个像样的工具。Acrobat 9.0有一个菜单选项,可以浏览内部PDF结构,也可以使用IText之类的工具。

    您需要定义“相似”。它仅仅是内容吗?格式化?图像?当然,我的最终目的是了解内容的相似性,但有时很难分析文件的内容(pdf不是我唯一的目标)。所以万维网更具适应性。(我是中国人,可能无法准确表达我的想法)。谢谢。说到内容,请看下面我的答案。我将再次编辑它来讨论实际的单词。