一个简单的 PDF 文件结构的分析
Adobe 的 PDF 参考告诉我们一个 PDF 文件可以通过下面 4 个方面来理
解:
1. 对象, 一个 PDF 文档是由一组基本数据类型组成的数据结构。
2. 文件(物理结构), 决定对象是如何存放在一个 PDF 文件中的,
它们是如何被访问的,如何被更新的。这个结构是独立于对象的语
义的。
3. 文档结构, 说明一些基本的对象类型是如何来表现 PDF 文档的成分
的:例如页,图片,字体,批注等。
4. 内容流,一个 PDF 文件内容流包含一系列的指令,描述页面的外
观或其他图形实体的外观和文件内容。
1.PDF 格式和 HTML,XML 格式:
一个 PDF 文档从根本上来说是一个 8 字节序列。 其实 PDF 格式和我
们已经熟知的 HTML,XML 等结构化的文件格式一样,包含有关键字,分
隔符,数据等等。
不同的是 PDF 文件是按照二进制流的方式保存的,而 html 文件则是可
读的文本方式保存的,你可以用文本编辑器分别打开一个 html 文件和 PDF
文件比较一下就知道了。XML 文件一般只包含数据本身,并没有把如何显
示的信息放在其中,因此要显示一个 XML 文件还需要一个 Schema 文件才
能显示,否则看到的将是所有的字节流,包括所有的标志;HTML 包含了
数据的同时也包含了一些关于如何显示的信息,但是 HTML 是按照是不经
过压缩的文本存放的,是可读的,你打开一个 HTML 文件就能知道所有将
显示在浏览器里的文字。 另外就是 HTML 不能包含二进制流,它对图像文
件的引用都是通过引用外部文件的方式来实现的。
2.PDF 规范的发展
PDF 规范从 1993 年到现在,已经有过 7 个版本,六次版本升级,从最
初的 pdf1.0 版本到现在的 PDF1.6, 每次的版本升级都会加入一些新的特性,
PDF 参考说明书也是从最初的 100 多页到现在的 1000 多页,但是 PDF 文
件格式的主要特性还是没有改变,可以这么理解,PDF1.6 是 PDF1.0 的扩
展集,学习了 PDF1.0 以后也能基本上理解 PDF1.6 的内容, 而 PDF1.0
规范是相对简单的,因此说我选择一个符合 PDF1.0 规范的最简单的一个
PDF 文件来进行分析。
PDF 规范的 6 次升级: