【问题标题】:Can I tell which software generated a PDF file?我可以知道哪个软件生成了 PDF 文件吗?
【发布时间】:2013-06-16 22:37:02
【问题描述】:

给定一个 PDF 文件。我可以找出用于创建/编辑它的软件/库(例如 PDFBox、Adobe Acrobat、iText...)吗?

【问题讨论】:

标签: pdf pdf-generation


【解决方案1】:

Adobe 规范将 Producer 字段(请参阅屏幕截图 nimeshjm 的答案中的“Mac OS X 10.5.6 Quartz PDFContext”)定义为“从另一种格式转换为 PDF”的应用程序的名称。在以编程方式生成 PDF 的情况下,PDF 并未真正转换,因此您通常会在此处找到生成 SDK 的名称。

创建者字段是相关的,定义为创建转换 PDF 的文档的应用程序的名称。这通常是 MS Word 左右。

请注意,这都是按照惯例。在实践中,您不能真正依赖它,您可能会遇到例如空的 Producer 字段。

【讨论】:

    【解决方案2】:

    您可能无需任何 PDF 库即可完成此类操作。它不会 100% 可靠,但我认为您可能可以假设 99% 的可靠性。

    所以... 编写一些代码以将 PDF 作为文本流打开并搜索 /Producer。你会发现这样的东西:

    69 0 obj
    << 
    /Creator (PDF+Forms 2.0)
    /CreationDate (D:20010627111809)
    /Title (Demo)
    /Producer (Cardiff Software - TELEform 7.0)
    /ModDate (D:20010627111810-05'00')
    >> 
    

    抓住括号之间的位,鲍勃是你的叔叔。从技术上讲,文本可以以其他格式存储,但我认为这些对于这种特定类型的条目来说非常罕见。

    如果您在此处找不到任何内容,请查找始终保证为明文格式的 XMP 数据。它看起来像这样,

    39 0 obj
    <</Subtype/XML/Length 15172/Type/Metadata>>stream
    <?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
    <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.0-c320 44.293068, Sun Jul 08 2007 18:10:11">
     <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:xap="http://ns.adobe.com/xap/1.0/"
        xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/"
        xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/"
        xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
       dc:format="application/pdf"
       xap:CreatorTool="Adobe Illustrator CS2"
       xap:CreateDate="2006-05-04T15:53:27-07:00"
       xap:ModifyDate="2006-05-04T15:53:27-07:00"
       xap:MetadataDate="2006-05-04T15:53:27-07:00"
       xapMM:DocumentID="uuid:61AC83CBC0DBDA11A32BC847EF128E34"
       xapMM:InstanceID="uuid:cba15bf3-d7da-4a4e-a563-fc20d13e258a"
       pdf:Producer="Adobe PDF library 7.77">
       <dc:title>
        <rdf:Alt>
         <rdf:li xml:lang="x-default">3.01 PDF components</rdf:li>
        </rdf:Alt>
       </dc:title>
    ...
    

    这两者的结合几乎总是正确的。如果您想要 100% 的可靠性,那么一定要使用 PDF 库,但对于许多用途来说,这应该足够了。

    我的回复可能包含基于 ABCpdf 的概念。这就是我的工作。这是我所知道的。 :-)

    【讨论】:

      【解决方案3】:

      您可以尝试在 Adob​​e Read 中打开文件并查看属性。

      您可以在打开 pdf 文件后在 Adob​​e Reader 中的文件 -> 属性中找到它。

      【讨论】:

        【解决方案4】:

        通常很难确定是哪个软件实际设计了 PDF,因为大多数 Microsoft Office 产品都可以将已编辑的文件转换为 PDF。我的意思是,打开一个常规类型的文档,您可以选择将其保存为 PDF。如果您熟悉 Powerpoint 幻灯片,一旦文件为 PDF,就可以根据设计很容易分辨。

        另一方面,Adobe Acrobat 能够像我们经常下载的那些申请表一样创建文件(从大使馆网站、移民网站等)。

        Adobe Photoshop、Illustrator 等其他软件可以将文件保存为 PDF。希望这有帮助。

        【讨论】:

          猜你喜欢
          • 2014-02-20
          • 1970-01-01
          • 1970-01-01
          • 2017-09-17
          • 1970-01-01
          • 2013-01-11
          • 1970-01-01
          相关资源
          最近更新 更多