PDF文件格式随笔

     PDF全称Portable Document Format, 便携,可移植文档格式. 其前身是PostScript, 属于描述型语言(Adobe公司推出的一套打印标准). 所以PDF中的指令集和PostScript中的指令类似,都是操作数在前,操作符在后.

     operand operand operand.... operator

这样符合程序的压栈,出栈调用.

     PDF目前已经成为ISO标准,并越来越多的受到政府,企业,图书馆,出版社等追捧. 这里列出一些PDF文件格式的优点.

 

1). PDF是描述型文件格式. 所以其支持文本,和二进制同时支持,即你既可以使用记事本手写PDF, 其内部也可以包含二进制码流,如flate码流,DCT(JPEG)码流,等等.

2). 文件格式描绘了较完善和较高仿真的绘图系统.

    a. 其早期版本基于不透明图像模型,从PDF1.4以后开始支持透明图像模型,该特点大大的增加了对现实的描述.

    b. 支持较完善的颜色空间:

        -----ICC Profile: 设备特性文件, 该颜色空间能很好和高保真的描述设备的颜色空间,及其向标准颜色空间的转化.  这样当PDF从一个PC传输到另外一个PC的时候,能够保证最佳的近似. ICC已经被公认的设备特性文件,每个显示器都会有一个特性文件.

        -----CIE颜色空间: CalGray, CalRGB, Lab等

        -----Device颜色空间: DeviceGray, DeviceRGB, DeviceCMYK. 这些颜色空间不被推荐,但却方面在相同显示系统下,快速的存储和显示.

        -----其他颜色空间:Pattern, Indexed, Seperation, DeviceN等 这些颜色空间较大的增加了PDF的色彩性,如Indexed方便压缩,类似调色板, Pattern允许颜色是用Pattern单元(如图像方块)铺成, Seperation允许分量颜色空间,如R分量等, DeviceN允许6分量颜色空间,如最新的高保真打印机有的就是用6分量颜色空间.

     c. 支持所有图形,图像的矢量变换及输出. 这里矢量变换是指, 允许对任何显示对象添加一个affine matrix(仿射矩阵), 该矩阵采用笛卡尔坐标系, X轴从左到右为正,Y轴从下到上为正(注意, windows坐标系是从上到下为正).

         这就意味的图形引擎必须支持image和path的任意平移,旋转,缩放,修剪(shear/skew). 

     d. 支持较丰富的mask(掩码), 如color key(颜色键)掩码, 二值掩码,和软掩码(灰度级掩码).  并且能全局和区域指定应用范围.

     e. 较完整的透明处理方程.

           较完整的阐述, alpha = mask * 不透明度

           Basic Compositing Formula

           及较多的blend(混合)方程:  Normal, Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn......

     f. 较丰富的operators. 如path生成, 全部3次Bezier曲线, path的用途fill(填充) 和/或 stroke(绘制). 颜色空间的制定, 状态的压栈及恢复, 文本, 字体,透明, mask等的指定等. 能丰富的描述PDF页面. 

     ........

3). 多种filter:

     既有适用所有流的编码格式(hex, ascii85, lzw, flate, runlength),也有针对图像的编码格式(ccitt, jbig2, jpeg, jpeg2000),另外还有加密filter.

    尤其是对图像的编码,可以应用时根据需要做最佳分辨率的采样. 同样jbig2/jpeg2000较高压缩比也将悦来越多的被人采用.

4). 多种加密机制.

    标准加密/证书加密, 2者声称的密钥采用AES/RC4对整个文件可选择性的加密使得PDF内容有较高的安全性. 二者皆不容易破解, 加密的同时可以设置owner和user两种不同的权限,不同的权限被允许的对PDF的操作不同, ower为每个用户(Recipients)配置权限.  这使得加密和授权都有相对较好的文件格式内部支持. 配合当前的工作流,内容管理,权限管理能很好的实现企业级应用等.

5). 标注, 除去基本的标注支持,其还支持Presentation(演示), 多媒体, XFA(XML forms achitechure)等等. 其标注描述和页面的指令集类似, 所以能使用一个render引擎, 除controls之外.  其表单处理特性方便了PDF加入到各个工作流中来.

6). tagged, 这有利于PDF的排版和文字的提取.

7). 分层,marked content处理,允许一个页面有很多层,适用于教学演示, CAD转PDF等.

8). 线形化,该标准虽然是adobe内部标准,但其能方便的建立在线越多,线性传输. 反映即时.

9). 归档, PDF/A该标准在PDF基础上的标准,使PDF称为新的一个被广泛接受归档格式。以替代早先的归档格式tiff.

10). 元数据,其支持XMP元数据标准.

11). 签名, 其支持全文签名和选择性签名.

......

 

(未完待续)

阅读更多
想对作者说点什么? 我来说一句

PDF文件格式

PDF 文件格式

hetoby hetoby

2016-05-10 18:18:59

阅读数:1513

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭