8

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

4

4 回答 4

6

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

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

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

于 2013-06-17T14:45:25.703 回答
3

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

打开 pdf 文件后,您可以在以下位置找到:文件 -> Adob​​e Reader 中的属性。

在此处输入图像描述

于 2013-06-16T22:41:19.310 回答
3

对于此类操作,您可能无需任何 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 的概念。这就是我的工作。这是我所知道的。:-)

于 2013-06-18T08:54:42.860 回答
0

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

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

其他软件如 Adob​​e Photoshop、Illustrator 等...可以将文件保存为 PDF。希望这有帮助。

于 2013-06-16T22:44:22.903 回答