pdf格式分析(1) -- 文本和二进制混排

pdf一个很大的特色是文本和二进制混排。

文本格式无需专门的工具就可以读写,在编写程序的过程中也容易检查。另外容易扩展,比如将数字直接写成文本,就没有数据溢出的问题。最开始数字表示用32位,后来发觉需要使用64位,这种扩展是很麻烦的。又比如xml的格式,最开始只需要3个属性,后来添加了5个属性,也完全是兼容旧版的。文本格式鼓励尽量使用简单的结构。还是以xml为例,通常xml输出的时候会以分层缩进的形式,如果结构复杂,层次太深,用文本编辑器打开的时候会很难看。

文本格式有很多好处,唯一的缺点是不够紧凑,在处理大批量的数据时,文件会比较大,读取也会比较慢。如1234567.12345,可以用4字节的二进制浮点数表示, 但用文本就需要13字节,读取时候也要先将字符转成数字才可以使用。

二进制的优缺点跟正好跟文本相反,需要专门的工具,不容易调试,不容易扩展,往往结构会越来越复杂。优点是紧凑。

pdf采用文本和二进制的混排,比较好的继承了二者的优点,结构简单,扩展性好,另外尺寸也比较小。

很多时候,不仅仅需要关注细节的,更重要的是问为什么。知道为什么要这样做,具体细节就容易理解很多了。通常设计者在设计的时候会遇到一些约束,在当时的情况下,那样的设计的合理的。但随着时间的推移,那约束可能会不存在,那设计就会看起来很笨,但这并不代表我们就比前人聪明。尽量站在当时的角度,设计者设计的时候是一种思维模式,如果用自己的很不同的思维模式去想,很多东西是根本想不明白的。

pdf的整体结构,类似一个小型的文本语言,也会有语法,关键字,也会有注释。而pdf的具体数据内容,多数以二进制的方式存储,更具体是当中的流。

你可能感兴趣的:(pdf,pdf)