PDF的文档规格说明书,在ISO(International Organzization for Standardization)和Adobe System的官方网站上都有下载,其中ISO的不免费。官方PDF 1.7版本756页的文档,够我读好长时间了,就慢慢的了解PDF文档的格式了。先暂且来一点PDF的构成类型,了解一点PDF的设计。
PDF的数据类型,有以下8种:
1)布尔
2)数值
3)字符串
4)名字
5)数组
6)字典
7)流
8)NULL对象
其中名字类型,还不了解表征的是什么类型,候补。其它类型都很容易理解。
再来看看设计:
1)直接对象和非直接对象。直接对象还不确定是什么,候补!非直接对象是需要一个对象号来标识。这个号和对象的对应关系保存在一个叫做xref的表里。这个表的具体结构还不清楚,候补。不过可以确定的是,这个xref表里保存着对象号和这个对象的偏移(从文件起始位置算起)。这种设计所带来的好处是:
提供了对象的随机访问效率
允许修改单个对象而不用更新整个文件
当有大量小对象时,减少了文件尺寸。
2)在分层方式上,PDF有线性和非线性两种。非线性分层方式占用的磁盘少,但是访问速度慢。线性分层方式则有个好处,即下载PDF文档时,不用等整个文件下载完才可阅读,也就是提供了流式结构,这提供了很好的用户体验。
留了一些疑问:
1.名字类型是什么样的类型?名字类型是以"/"开始的遗传字符串(不包含%、(、)、<、>、{、}、[、]等符号)
2.直接对象指的是什么样的对象,其访问方式和非直接对象有何不同?直接对象据PDF 1.7的官方规格说明书定义的是:非非直接对象,我顶他个肺。
3.xref表的结构。
参考文献:
[1]. ISO 32000-1:2008 http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=51502
[2]. Document Management – Portable Document Format – Part 1: PDF 1.7, First Edition
http://www.adobe.com/devnet/pdf/pdf_reference.html
[3]. 维基百科的pdf词条.http://en.wikipedia.org/wiki/Portable_Document_Format