pdf 文件格式及对象模型

pdf 文件格式及对象模型

对象模型

PDF文件主要是由object组成的, 通过object的内部关系形成如下的逻辑结构
/Catalog
    /Pages
        /MediaBox
        /Count
        /Kids
其中,
'/'开头的是对象名字,
/MediaBox 是页面大小,
/Count是页数,
/Kids是页对象集合.

页对象如下:
/Page
    /Parent
    /Resources
    /Contents
其中,
/Parent就是/Pages,
/Resources描述各种资源, 比如字体信息,
/Contents是页容, 通常是文字.

文件结构

一个简单的PDF的结构如下:
%PDF-1.3
%XXX
Object1
Object2
Object3
...
ObjectN
xref
trailer
%%EOF
其中,
xref 记录了各个object 在文件中的偏移
trailer 记录了根对象的ID, 通常是 /Catalog

显示PDF 的过程

在这方面, PDF的最大特点是"按需读取", 如下:
* 读 xref, 得到 object id -> offset, 即, 对象及对象在文件中的位置,
* 从 trailer 中读到根对象的 id,
* 根据xref 读取根对象的内容, 由此得到所有页的id
* 根据xref 读取页对象的内容
因为不必解析前面的页, PDF文件可以很快地显示到任何页

你可能感兴趣的:(pdf)