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文件可以很快地显示到任何页

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值