编码器 PDF 规范: Adobe 还是 ISO?

我想编写一个可以阅读和解码 pdf 文档的应用程序; 现在我应该从哪里获得这个文件格式的规范?PDF 格式是从 ISO 组标准化的,但我不清楚哪里是获得这类信息的最可靠来源。

什么是一个好的源代码开始这个文件格式?

24303 次浏览

PDF 不是一种轻量级格式。它基本上是后记,顶部是压缩。现有的库是您想要使用的 当然,而不是编写您自己的。这是个艰巨的任务。

或者获得一个现有的 PDF 编写器应用程序,并从您的程序中启动它。

我没怎么看过,但 Libgnupdf看起来不错。

根据 维基百科 PDF 结合了三种技术:

  • PostScript 页面描述编程语言的子集, 用于生成布局和图形。
  • 一个字体嵌入/替换系统,允许字体与文件一起旅行。
  • 一个结构化的存储系统,将这些元素和任何相关的内容捆绑到一个文件中,并在适当的地方使用数据压缩。

您实际上可以同时使用前面提到的两个来源; 这种混淆是历史性的。

Adobe 发明了 PDF,还发明了 Acrobat 产品系列与 PDF 一起使用。不同的 PDF 版本与主要的 Acrobat 版本一起发布(例如 PDF 1.3与 Acrobat 4一起发布)。

由于采用了 PDF 格式,并且编写了许多实际上依赖于专有 PDF 文件格式的 ISO 标准(对于 ISO 标准来说不是一件容易的事情) ,Adobe 决定将 PDF 格式移交给 ISO。

从那时起直到今天,有一个 ISO 委员会负责编辑 PDF 规范和提出新版本。PDF 的 ISO 标准是 ISO32000。

另外,请记住,根据您希望在何处使用 PDF,许多其他 ISO 标准可能非常有用或不可或缺。其中最常用的是 PDF/X (用于在发布社区中交换 PDF 文件)和 PDF/A (用于创建需要长期存储的 PDF 文件)。这些规范引用了 PDF 标准的特定版本,并添加了额外的要求和限制。

就规范而言,您可以直接从 ISO 获得所有文档。然而,对于 PDF 本身,你也可以从 Adobe 获得它,而且文档将是相同的。请参阅 AdobeDevNet 的 Acrobat 网站:

Http://www.adobe.com/devnet/acrobat.html

只需下载 AcrobatSDK,它将提供作为其一部分的文档。

让我对代码中的“针对 PDF 规范”添加一句警告。我真的,真的,真的建议你更清楚地说明你需要什么样的 PDF (编辑,生成,质量控制(飞行前)) ,然后寻找或询问一个现有的库,以满足这些需求或可以扩展以满足你的需求。

写一些通常支持“ PDF”的东西将是一项艰巨的任务。PDF 规范很大,错综复杂,充满了... ... 呃... ... 细节。有龙!


更新:

直接链接到 Adobe 的 PDF-1.7规范文档(第一版,免费下载,请点击这里:

本文件的内容后来被正式采纳为通用 PDF 的 ISO 标准,ISO 32000-1。

然而,请注意,与 ISO 提供的 PDF 文件有一些不同之处:

如果你开始开发 PDF 软件,有上面的免费 PDF 链接就足够了。


更新: 2021年

值得注意的是,ISO 同时发布了 PDF 规范的新版本,称为 ISO 32000-2。国际标准化组织网站上关于这方面的信息。这个新版本于2017年发布,并于2020年12月收到更新。

虽然该文档没有显著改变 PDF,而且大多数关于 PDF 的一般信息,例如规范的免费 Adobe 版本仍然是正确的,但肯定会有一些变化:

  • 许多东西,尤其是深入技术的东西,比如关于透明度的所有东西,都会收到一个更新,主要是为了澄清现有的语言(以及添加到目前为止或多或少是隐含的信息)。这些更新对如何实现或使用标准的这些部分有影响。
  • 标准中包含了新的特性。

如果您正在编写 PDF 文件,尤其是更简单的文件,Adobe 规范应该仍然可以让您继续。如果你想支持 PDF 标准中的所有内容,你需要为最新的 ISO 版本付费(但是这个要求太高了)。