我想编写一个可以读取和解码 pdf 文档的应用程序;现在我应该从哪里获得这种文件格式的规格?PDF 格式是由 ISO 组标准化的,但我不清楚从哪里获取此类信息的最可靠来源。
什么是从这种文件格式开始的好来源?
我想编写一个可以读取和解码 pdf 文档的应用程序;现在我应该从哪里获得这种文件格式的规格?PDF 格式是由 ISO 组标准化的,但我不清楚从哪里获取此类信息的最可靠来源。
什么是从这种文件格式开始的好来源?
您实际上可以使用您提到的两种来源;这种混乱是历史性的。
Adobe 发明了 PDF,并发明了与它一起使用的 Acrobat 产品系列。不同的 PDF 版本与主要的 Acrobat 版本一起发布(例如 PDF 1.3 与 Acrobat 4 一起发布)。
由于采用了 PDF 格式,并且由于编写了许多实际上依赖于专有 PDF 文件格式的 ISO 标准(对于 ISO 标准来说不是一件容易的事情),Adobe 决定将 PDF 格式移交给 ISO。
从那时起一直到今天,都有一个 ISO 委员会负责编辑 PDF 规范并提出新版本。PDF 的 ISO 标准是 ISO 32000。
此外,请记住,根据您要使用 PDF 的位置,许多其他 ISO 标准可能非常有用或必不可少。其中最常用的是 PDF/X(用于在出版界交换 PDF 文件)和 PDF/A(用于创建需要在长期存储中存档的 PDF 文件)。这些规范引用了 PDF 标准的特定版本,并添加了额外的要求和限制。
就规范而言,您可以直接从 ISO 获取所有文档。但是,对于 PDF 本身,您也可以从 Adobe 获得它,并且该文档将是相同的。请参阅 Acrobat 上的 Adobe DevNet 站点:
http://www.adobe.com/devnet/acrobat.html
只需下载 Acrobat SDK,它就会为您提供文档作为其中的一部分。
让我在代码中添加一个关于“以 PDF 规范为目标”的警告。我真的,真的,真的建议您更清楚地指定您对 PDF 的需求(编辑、生成、质量控制(预检)),然后寻找或询问满足这些需求或可以扩展以满足这些需求的现有库您的需求。
编写一般支持“PDF”的东西将是一项艰巨的任务。PDF 规范很大、很复杂并且充满了……嗯……细节。有龙!
更新:
Adobe 的 PDF-1.7 规范文档的直接链接(第一版,免费下载,在这里:
该文件的内容后来被正式采用为通用 PDF 的 ISO 标准 ISO 32000-1。
但请注意,ISO 提供的 PDF 文件存在一些差异:
如果您开始开发 PDF 软件,从上面的 Adobe 链接中获得(免费)PDF 就足够了。
更新:2021
值得注意的是,ISO 同时发布了 PDF 规范的新版本,称为 ISO 32000-2。ISO 网站上的相关信息。这个新版本于 2017 年发布,并于 2020 年 12 月获得更新。
尽管该文档没有显着改变 PDF,并且大多数关于 PDF 的一般信息(例如免费的 Adobe 规范版本)仍然是正确的,但肯定有一些变化:
如果您正在编写 PDF 文件,尤其是更简单的文件,Adobe 规范应该仍然可以让您继续前进。如果您想支持 PDF 标准中的所有内容,则需要为最新的 ISO 版本付费(但无论如何这是一项艰巨的任务)。