一个简单的PDF文件结构的分析 Adobe 的PDF 参考告诉我们一个PDF 文件可以通过下面4 个方面来理解: 1. 对象, 一个PDF 文档是由一个由基本数据类型组成的数据结构。 2. 文件(物理结构), 决定对象是如何存放在一个PDF 文件中的, 它们是如何被访问的,如何被更新的。这个结构是独立于对象的语义的。 3. 文档结构, 说明一些基本的对象类型是如何来表现 PDF 文档的成分的:页,字体,批注,和另外一些内容。 4. 内容流.一个PDF 文件内容流包含一系列的指令,描述页面的外观或其他图形实体的外观和文件内容。 但是当时对我来说要看懂这几行字是有很大的困难的,需要了解确切含义,必须看完后面的几十页上百页的内容并且要分析一下一个实际的PDF 文件才能完全领会它的意思。 后来经过长时间的文档阅读,相关开发,并且具体地分析PDF 文件后才把 PDF 文件的语法,文件的解析搞清楚。虽然说学习是痛并快乐着,但是对于当时我来说真的希望有一个人能够告诉我一个简单的例子,通过一个简单的例子来描述 PDF 的基本组成,它的解析原理和过程。因此下面我主要将以一个简单的例子来说明 PDF 的主要特性并给出一个简单的PDF 文件的全景。 在继续阅读该文章前,我们先问自己下面的几个问题: l 你了解至少一种文件格式吗?(例如 HTML) l 为什么要学习 PDF 的相关知识? 如果你对第一个问题的答案为“ 是” , 并且第二个问题你能给出一个非常明确的答案,那么这篇短文是适合你的。否则,如果对任何一种格式都不了解,建议先了解一下HTML,或 XML,你可以从这两种语言里得到很多启发,对学习 PDF 的构成有很大的好处;如果你不清楚你要学习是为了什么,那么我就认为你学习没有目的性和动力,说不定你今天学了以后明天就忘得一干二净。 1.PDF 格式和 HTML,XML 格式: 一个PDF 文档从根本上来说是一个8 字节序。其实 PDF 格式和我们已经熟知的HTML,XML 等结构化的文件格式一样,包含有关键字,分隔符,数据等等。 不同的是PDF 文件是按照二进制流的方式保存的,而 html 文件则是文本方式保存的。XML 文件一般只包含数据本身,并没有把如何显示的信息放在其中,因此要显示一个XML 文件还需要一个Schema 文件才能显示,否则看到的将是所有的字节流;HTML 包含了数据的同时也包含了一些关于如何显示的信息,但是HTML 是基于文本存放的,是可读的,你打开一个HTML 文件就能知道所有显示在浏览...