pdf
便携式文档格式
PDF是Portable Document Format的缩写,即“可携带的文件格式”。是奥多比于1992年开发的一种跨操作系统平台的电子文件格式。
PDF是由Adobe联合创始人约翰·沃诺克(John Warnock )博士在1991年基于PostScript提出了一个名为Camelot的系统,最终演变成PDF。于1993年6月15日首次正式亮相。在2008年7月2日,Adobe Systems的PDF1.7版成为了ISO 32000:1:2008,从此PDF就成为了正式的ISO国际标准。
PDF文件既可包含矢量图形,也可包含点阵图像和文本,并且可以进行链接和超文本链接,可以通过AcrobatReader软件进行阅读。
发展历程
早期研发
1991年,奥多比联合创始人约翰·沃诺克(John Warnock )博士基于PostScript提出了一个名为Camelot的系统,目标是“从任何应用程序获取文档,将这些文档的电子版本发送到任何地方,并能在任何机器上查看和打印”。Camelot最终演变成了PDF——可移植文档格式(Portable Document Format)。到1992年,卡米洛特项目发展成了 PDF,Adobe公司正式将其命名为PDF1.0,并于1993年6月推出了支持PDF处理和浏览的Adobe Acrobat软件。1993年,Adobe公司开发的用于阅读PDF格式文件的阅读器AcrobatReader。早期的PDF仅仅提供了有限的印刷出版功能自1999年Adobe推出PDF1.3版本之后,PDF才真正开始成为印前及印刷数字化工作流程上的主流交换文档格式。
标准化
为扩大PDF的影响力,Adobe 公司从2000年开始积极参与ISO的活动,试图将PDF及其子集推荐为国际标准。
在2005年12月,ISO组织将Adobe公司制定的PDF标准转化为国际标准《文件管理—电子文件长期保存用文档格式-第1部分:PDF1.4的使用(PDF/A—1)》(Document management-Electronic document file format for long term preservation-Partl:Useof PDF 1.4(PDF/A-1))(ISO 19005-1:2005),将PDF1.4版本作为第一个适合长期保存的电子文件格式在全世界范围内推广。在2006年,奥多比推出PDF1.7版本。 \u0015\u0010\u0010 \u0013\u0003 \u0004\u0005\u0006\u0003\u0017\u0014\u0015\u0003
Adobe 公司于2008年将有关 PDF 的规范全部提交给国际标准化组织(ISO),由国际标准化组织技术委员会171(TC 171)进最后行修订。2008年7月1日,PDF1.7被正式命名为 ISO32000-1:2008 并发布,其全称“Document management—Portable doc-ument format—Part 1:PDF 1.7(文档管理可携式文件格式第 1 部分:PDF 1.7)”。ISO32000-1:2008是第一个全功能的关于PDF的ISO标准。从此,PDF的有关标准将主要由ISO来进行维护,它不再是由奥多比控制的一个垄断产品。
Adobe 公司于2011 年推出PDF2.0。同年7月,ISO通过了新的标准,即 ISO/CD32000 -2 -Document management—Portable docu-ment format—Part 2:PDF 2.0(文件管理可携式文件格式第2部分:PDF2.0);同年7月,ISO 19005-2公布,由此形成了 PDF/A-2。与PDF/A-1相比,PDF/A-2有着更多的变化,较PDF/A-1也更加的完善。
ISO组织于2012年颁布的《文件管理一—用于长期保存的电子文件档案格式-第3部分:含嵌人式文件支持的ISO32000-1标准的应用(PDF/A-3)》Documentmanagement Electronic document file format for long-term preservation Part3:Useof ISO 32000—1 with support for embedded files(PDF/A-3)(ISO 19005-3-2012)。
在PDF问世30周年的时候,日本奥多比宣布,将6月15日定为“PDF日”。
技术简介
PDF格式以PostScript语言图像模型为基础,将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高,因而特别擅长支持跨平台、多媒体集成的信息出版和发布,尤其是提供对网络信息发布的支持。
PDF主要由三项技术组成:①衍生自PostScript,用以生成和输出图形;②字型嵌入系统,可使字型随文件一起传输;③结构化的存储系统,用以绑定这些元素和任何相关内容到单个文件,带有适当的数据压缩系统。
PDF文件使用了工业标准的压缩算法,通常比PostScript文件小,易于传输与储存。它的页面是独立的,一个PDF文件包含一个或多个“页”,可以单独处理各页,特别适合多处理器系统的工作。此外,一个PDF文件还包含文件中所使用的PDF格式版本,以及文件中一些重要结构的定位信息。正是由于PDF文件的种种优点,它已成为出版业中的新宠。
标准
关于PDF的ISO标准:PDF/X、PDF/E和PDF/A标准是由国际标准化组织(ISO)定义的。
PDF/X标准应用于图形内容交换;PDF/E标准应用于工程文档的交互式交换;PDF/A标准应用于电子文档的长期归档。在PDF转换过程中,将对要处理的文件对照指定标准进行检查。如果PDF不符合选定的ISO标准,系统会提示取消转换或创建不符合标准的文件。
在印刷出版工作流程中广泛使用的标准有以下几种PDF/X格式:PDF/X-1a、PDF/X-3和PDF/X-4(2008)。在PDF归档中广泛使用的标准为PDF/A-1a和PDF/A-1b(要求较低)。目前,PDF/E的唯一版本是PDF/E-1。
PDF/X的目的在于为设计员、绘图员、工程师和图像艺术家提供一种可为任何服务提供者正确打印的电子文件格式。PDF/X使保持完全一致性成为可能,即使文件被人们在多处位置,用不同的机器处理,效果也是一样的。这种格式对大多数网络公司的打印就绪文件传输很理想。这里,打印就绪信息的输送者和接收者并无很强的互相关联。除了为打印任务提供坚实的传送格式之外,PDF/X还具备其他好处,包括有一个文件查看器,更佳的压缩效果(文件大小更小),支持专色印刷色彩这种识别打印条件(比如哪个文件已就绪)的技术手段,以及更多。不过,也与PDF/A一样,PDF/X的好处也伴随着一些妥协。比如透明加密和JBIG2压缩等功能在PDF/X中就是被禁止的。
PDF/E标准主要针对工程技术工业。它针对一些PDF技术的一些工程技术界使用的最新功能,包括对象级元数据和3D模型。
主要特点
设备无关性
PDF文件格式以向量方式描述页面中的元素。它定义了多种坐标系统,并通过当前变换矩阵完成从用户空间到设备空间的转换,从而使得PDF文件独立于各种设备,适应不同条件的用户要求。
可移植性
PDF文件中既允许ASCⅡ码文件信息,又允许二进制文件信息。通过编码过滤器可以实现两种信息的转换。ASCⅡ码是最通用的字符集,它可以解决数据在不足8位的通道中正确传输的问题。PDF的可移植性确保了文件在网络中正确传输。
可压缩性
PDF支持不同标准的压缩过滤器,使PS文件转为PDF文件时,文件长度明显缩小。对采用压缩过滤器生成二进制数据,PDF可将之再转换为ASCⅡ代码,来保持文件的可移植性。
字体独立性
PDF中采用了一种新的解决字体问题的方法,即在PDF文件中包含对应于其使用的每一种字体的“字体描述”。“字体描述”中包括字体的名称、字符信息、字体风格信息等,在出现缺少字体时准确替换字体所必需的信息。
文件独立性
PDF文件中运用先生成PDF文件的对象,再在文件尾部生成有关此文件的总体描述信息方式,来实现对单向通过性的支持。这样便能在文件的最后设置诸如文件大小、文件总页数等信息。单向通过性有效地提高了处理PDF文件的效率。
页面独立性
每个PDF文件都包含有交叉引用表,能用来直接获取页面或其他对象,从而使得对任一页面的获取与文档的总页数和位置无关。
增量更新
PDF文件具有可进行增量更新的文件结构,需要更新时只需将所作更改项附在文件后面,而无须重写整个文件,使文件更新速度大大提高尤其有利于印前作业的大文件。此外,增量更新还保留文件的历史记录,能随时取消所作的修改,使印前作业过程更加简便。
平台中立
同一PDF可在多种操作系统进行交互操作,已真正成为独立于各种软件、硬件及操作系统之上的、便于用户交换与浏览的印前电子文件格式。
支持多种色彩模式
Photoshop中,PDF格式可支持RGB、CMYK、Indexed Color、Grayscale、Bitmap、Lab色彩模式,但不支持AIPha通道。
文件结构
PDF文件的基本元素是PDF对象,对于PDF对象来说,其组成元素为直接对象或者间接对象。直接对象包含几种基本类型:布尔型、数值型、字符串型、名字型、数组型、字典型、流对象以及空对象,而间接对象和直接对象不同,间接对象标识是为了让别的PDF对象引用,间接对象通过间接对象ID标识PDF对象。任何PDF对象标识后都变成了间接对象。 其中,间接对象(Indirect Objects)——通过使用引用来进行访问的对象;直接对象(DirectObjects)——不通过引用就可以直接访问的对象。
布尔型(Boolean)
用关键字True或False表示,它仅有真值和假值,布尔型可以表示dictionary对象中的条目,也可以表示array对象中的其中一个对象。
数值型(Numeric)
用整型(IntegerValue)和实型(RealValue)表示,数值型对象并不支持非十进制数字,同时也不支持形如指数格式的数字。
字符串型(String)
包括直接字符串(LiteralString)和十六进制字符串(Hexadecimal String),字符串型对象由一系列字节组成,每个字节字长均为0-255之间,而一个字符串型的对象长度不可以超过65535。直接字符串是由(包括起来的字符串,可以使用转义符“/”;十六进制字符串由>包括起来的十六进制序列,十六进制字符串中由两位表示一个字符,对于不足两位的,则使用0来补齐空位。
名字型(Name)
以/作为开始标识的8位字符序列,允许的最大长度为127,不可分割性和必须唯一性,这点与字符串型不同。
空对象(Null)
用关键字null来表示空对象。
数组(Array)
由[]包括起来的有序对象序列,由任意的PDF对象结合构成,也包含数组。虽然PDF对象仅仅支持一维数组内容,但是仍然可以通过array特性中的嵌套实现多维(不超过8191)的array数组。
字典型(Dictionary)
是一种无序的键(Key)值(Value)对,key在字典中一定是唯一的,key必须是name对象,在同一个字典中,绝对不允许出现相同的Key,Value则可以是任意的PDF对象类型。在PDF中绝大多数的间接对象都是字典型,字典由<<>>包括起来。
流(Stream)
是一种特殊的,用关键字“stream”“endstream”以及“dictionary”包裹起来的字典对象,stream对象由这些组合中的许多个字节组成。流对象中的信息都是通过过滤器加密或压缩的。前缀字典包括这个流是否加密以及如何解码这个流等信息。在数据量比较大的情况,一般都采用流对象来表示文档,流对象通常用来存储图像、文字、脚本代码等。流可以分为几次读取,也可以对不同的部分在不同的时候分开使用,相比string具有更大的适用性,而且相比string,stream存储的长度并没有限制。需要区分开来的概念是,stream必须是间接对象,但是包含stream的字典必须是直接对象。
相关争议
互联网安全公司360昨天发布警报称,奥多比旗下PDF软件漏洞已遭黑客攻击,可使病毒寄生在PDF文档中,打开PDF就中招。受漏洞影响的PDF软件包括Adobe Read和Adobe Acrobat。360安全中心认为,该漏洞可能被黑客利用电子邮件、网络下载等方式传播病毒,例如把热门小说制作为PDF电子书,利用漏洞在其中植入病毒,专门攻击点击阅读PDF的用户电脑。
来自波鸿大学明斯特大学的研究人员在 PDF 加密方式中发现了两个主要的安全漏洞。研究人员称之为 “直接渗透” 的第一个变种利用了 PDF 加密规范,也就是执行加密的软件不会对 PDF 文件的每个部分进行加密,这使得文件的一部分可以被黑客查看到。攻击者通过注入代码,可以在合法用户打开文档时,运行该文件的未加密的部分文件。打开文件后,添加的代码可以将文件的内容发送到攻击者指定的站点。第二个变体没有名称,攻击者使用密码块链接小工具将 PDF 文档中存在的纯文本更改为代码,就像第一个变体一样,当合法用户打开文件时,嵌入式代码将执行,将文档发送到攻击者指定的站点。
在2023年8月31日消息,近日,JPCERT发布警告消息,称发现了一种将恶意文档嵌入PDF的攻击方式。这种新的攻击技术,能够绕过pdfid等传统的PDF安全分析工具,对用户的设备进行攻击。JPCERT将该技术命名为“MalDoc in PDF”,用户一旦打开通过该技术创建的PDF文件,就会激活其中的宏命令,继而执行恶意代码。
常用工具
Adobe Acrobat Reader
用于可靠地查看、打印和共享 PDF 的免费全球标准。
Foxit Reader
具有完全自主产权的PDF核心技术是一款高效专业安全的阅读器。可对PDF文档进行高亮、删除线、注释、文本框等,一键导出小结注释;支持把PDF转换成Word, Excel, PPT等常用的文档格式;可快速提取PDF文件中的文字等。
PDFelement
万兴科技集团股份有限公司旗下的PDFelement是一款全能型的PDF文档解决方案,功能包含PDF编辑、PDF转换、PDF创建、PDF合并、OCR、批量处理等,主要服务于国内外的企业用户及个人用户,在全球拥有5000万用户。
AdobeAcrobat Pro
是由奥多比开发的一款PDF编辑软件,以PDF格式制作和保存文档,以便于浏览和打印,或使用更高级的功能。Adobe公司还同时推出了一个免费的PDF阅读软件Acrobat Readero。
目录
概述
发展历程
早期研发
标准化
技术简介
标准
主要特点
设备无关性
可移植性
可压缩性
字体独立性
文件独立性
页面独立性
增量更新
平台中立
支持多种色彩模式
文件结构
布尔型(Boolean)
数值型(Numeric)
字符串型(String)
名字型(Name)
空对象(Null)
数组(Array)
字典型(Dictionary)
流(Stream)
相关争议
常用工具
Adobe Acrobat Reader
Foxit Reader
PDFelement
AdobeAcrobat Pro
参考资料