最近在做PDF文件格式解析相关工作,总结留下记录。
个人比较崇尚乔新亮老师一句话,分享带来快乐,交流创造价值。
PDF数据存储格式首先有个对PDF文件格式整体的一个概念,PDF文件格式如下图所示:
简单PDF存储格式
PDF文件版本号只会占文件头的第一行;
PDF数据内部包含内容对象、资源对象等,在PDF文件中一般占比最大;
交叉引用表定义对象序号、对象的绝对文件位置、对象状态(是否被删除);
文件尾标明交叉引用表的绝对位置、文件一些全局属性、上个交叉引用表位置、根结点、信息节点等信息;
PDF添加内容后存储格式既然有上个交叉引用表就说明这个结构并不是一成不变的,如果对这个PDF进行一次添加则会变成下图所示结构。
多次编辑后PDF存储格式
后续如果多次修改会有很多个PDF数据块、交叉引用表、文件尾.
,