什么是PDF文件
可移植文档格式(PDF), 是Adobe于1992年开发的一种文件格式,以一种与应用软件、硬件和操作系统无关的方式显示文档,包括文本格式和图像。基于PostScript语言,每个PDF文件都封装了固定布局平面文档的完整描述,包括文本、字体、矢量图形、光栅图像和显示它所需的其他信息。PDF源于Adobe联合创始人约翰·沃诺克于1991年发起的“Camelot项目”。PDF于2008年被标准化为ISO 32000。
PDF格式现在是一种开放标准,由国际标准化组织(ISO)维护。PDF文档可以包含链接和按钮、表单字段、音频、视频和业务逻辑。
PDF格式的优势
- 完美的兼容性
PDF是一种可移植文档格式。它们是通用兼容的,这意味着任何人都可以打开和查看PDF文件,无论用什么样的操作系统、软件、硬件,无论是PC、手机、还是平板,他们看到的内容都是完全一致的。
2. 安全并可以保护您的数据
PDF提供了一种安全的方式来发送可能包含个人或机密数据的信息。它们可以被加密,这意味着只有经过授权的个人才能访问文件中的信息。同时,这种格式很难编辑,这有助于保护您的数据不被篡改。
3. 更广泛的受众
PDF是可访问的,因为任何人都可以打开和阅读,无论他们的计算机上安装了什么软件。
4. 非常适合分享和合作
PDF文件非常适合共享和协作,因为它们体积小,易于创建,并且可以在大多数设备上查看。PDF也被企业和专业人士广泛接受以电子方式发送文件。
5. PDF文件更加可定制
PDF文件比任何其他流行的文档类型都更易于定制,因为它们允许您更改文档的外观,而不会影响文档本身的质量。
6. 更小,占用更少空间
与其他文件格式相比,PDF文件的文档大小更小。如果您的PDF文件过大,我们提供了很好的在线PDF压缩工具,可以很方便的减少PDF文件的大小
7. 易于创建和编辑
PDF文件易于创建和编辑,非常适合跟踪调查、税务文件甚至食谱等信息。此外,由于PDF在大多数设备上都很容易打开,因此您无需担心丢失对重要数据的访问权限。
PDF的历史(背景)
Adobe设计了PDF文件格式,以支持跨平台发布和发布多媒体集成信息,特别是支持发布网络信息。为了实现这一目标,PDF具有许多其他电子文档格式无法比拟的优势。
对于普通读者来说,用PDF制作的电子书具有纸质书的质感和阅读效果,可以逼真地展现原著的原貌,并且可以随意调整显示尺寸,为读者提供个性化的阅读方式。
PDF文档的技术特点
PDF文件通常是矢量图形、文本和位图图形的组合。PDF中的基本内容类型包括:
- 作为内容流存储的排版文本(不以纯文本编码);
- 由形状和线条组成的插图和设计的矢量图形;
- 照片和其他类型图像的光栅图形
- 文档中的多媒体对象。
在以后的PDF修订版中,PDF文档还可以支持链接(文档或网页内)、表单、JavaScript(最初作为Acrobat 3.0的插件提供)或任何其他类型的可使用插件处理的嵌入内容。
PDF结合了三种技术:
- PostScript页面描述编程语言的等价子集,但采用声明形式,用于生成布局和图形。
- 字体嵌入/替换系统,允许字体随文档移动。
- 一种结构化存储系统,用于将这些元素和任何相关内容捆绑到单个文件中,并在适当情况下进行数据压缩。
PDF格式详解
PDF文件主要有4个部分组成
头部
这是PDF文件的第一行,指定文档使用的PDF的版本号。如果我们想找出这一点,我们可以使用十六进制编辑器(sublime text等)如下文件为PDF1.7版本
Body
在PDF文档的正文(Body)中,有一些对象通常包括文本流、图像、其他多媒体元素等。正文部分用于保存向用户显示的所有文档数据。
第一个数字来唯一标识一个对象的,第二个是版本号,表明对象修改版本,如果是0,即第一次被创建以后没有被修改过。
对象的内容应该是包含在<< 和>>之间的,最后以关键字endobj结束。
xref Table(交叉引用表)
xref交叉引用表,其中包含对文档中所有对象的引用。交叉引用表的目的是允许随机访问文件中的对象,因此我们不需要阅读整个PDF文档来定位特定对象。每个对象由交叉引用表中的一个条目表示,该条目总是20字节长。
在上面的示例中,我们可以看到我们有四个子部分(请注意,四行仅包含两个数字)。这些行中的第一个数字对应于对象编号,而第二行表示当前子区域中的对象数量。每个对象由一个20字节长的条目表示(包括CRLF)。
尾部
trailer是PDF文件的尾部
/Size 190 说明该PDF文件的对象数目。
/Root 1 0 R 说明根对象的对象号为1。
tartxref 523900 说明交叉引用表的偏移地址,从而可以找到PDF文档中所有的对象的相对地址,进而访问对象,类似于文件索引
%%EOF为文件结束标志。
PDF的版本演进
Adobe标准
版本 | 版次 | 发布年份 | 功能 | Acrobat Reader 支持版本 |
---|---|---|---|---|
1.0 | 第一版 | 1993 | 文本、图像、页面、超文本链接、书签、缩略图 | 1.0 |
1.1 | 第一版 修订 | 1994 | 密码、加密、与设备无关的颜色、线程和链接、较小文件的二进制格式 | 2.0 |
1.2 | 第一版 修订 | 1996 | 交互式页面元素(单选按钮、复选框);交互式,填写表单;表单数据格式(FDF),用于可从Web导入、导出、传输和接收的交互式表单数据;鼠标事件;视频;外部或嵌入式声音再现;zlib/delate压缩文本或二进制数据;Unicode;高级颜色特征和图像代理 | 3.0 |
1.3 | 第二版 | 2000 | 数字签名;ICC和DeviceN颜色空间;JavaScript动作;任何类型的嵌入式文件流(例如用于附件);新注释类型;Adobe PostScript语言Level 3成像模型的新功能;掩蔽图像;图像的替代表示;平滑阴影;增强页面编号;Web捕获,一种从万维网捕获信息并将其转换为PDF的工具;独立于图形结构的逻辑结构表示;对CIDFonts的额外支持;用于将字符串和数字映射到PDF对象的数据结构;印前生产工作流支持信息;表示函数的参数化类的若干函数对象类型的新函数 | 4.0 |
1.4 | 第三版 | 2001 | JBIG2;透明度RC4加密密钥长度大于40位(40–128位);增强交互式表单和表单数据格式(FDF)、XML表单提交、嵌入式FDF文件、Unicode规范、远程协作和FDF文件中的数字签名;残疾人无障碍;使用可扩展元数据平台(XMP)的元数据流;标记PDF;包括打印机标记;显示和预览与生产相关的页面边界;新的预定义CMAp;交替发言;将内容从一个PDF文档导入另一个;PDF文档名称字典中的EmbeddedFiles条目,是嵌入数据的标准位置 | 5.0 |
1.5 | 第四版 | 2003 | JPEG 2000;增强对多媒体嵌入和播放的支持;对象流;交叉参考流;用于交互式表单提交的XML表单数据格式(XFDF)(取代了PDF 1.4中的XML格式);支持基于Adobe的XML表单架构(XFA)2.02(仅定义静态XFA表单)的表单、富文本元素和属性;公钥安全处理程序使用PKCS#7(在PDF 1.3中介绍,但在1.5之前未在参考文件中记录)、公钥加密、权限、使用权限(UR)签名(不需要文档加密)、PKCS#1和SHA-1,RSA高达4096位;安全处理器可以使用自己的加密和解密算法;作者或读者针对CAD图纸、分层艺术品、地图和多语言文档等项目选择性查看或隐藏的文档部分;替代演示文稿–唯一的类型是幻灯片–通过JavaScript操作调用 | 6.0 |
1.6 | 第五版 | 2004 | 3D,例如支持通用3D文件格式;OpenType字体嵌入;支持XFA 2.2富文本元素和属性(XFA 2.1和2.2定义了以下特性:动态XFA表单、XFA的W3C XML数字签名、Web服务的XFA支持、HTTP上的XFA“doc literal”SOAP操作、Web服务WSDL定义SOAP绑定操作等);AES加密;PKCS#7,SHA256,DSA高达4096位;N通道颜色空间;对嵌入式文件附件的额外支持,包括与嵌入式文件的跨文档链接;与使用权和修改检测和预防签名相关的数字签名的增强和澄清 | 7.0 |
1.7 (ISO 32000-1:2008) | 第六版 | 2006 | 增加3D的展示;XFA 2.4富文本元素和属性;多个文件附件(便携式集合);PDF消费者应用程序的文档要求;PKCS#7与SHA384、SHA512和RIPEMD160;JavaScript for Acrobat API参考版本8.0 | 8 |
1.7 Adobe Extension Level 1 | 2008 | XFA 2.5(扩展级别1)和XFA 2.6(扩展级别2)(XFA 2.6定义了以下功能:XFA安全提交、新配置文件-XFA前景(XFAF)-XFA表单的每个页面都覆盖PDF背景等) | 8.1 | |
1.7 Adobe Extension Level 3 | 2008 | 256位AES加密;将XFA数据集合并到符合PDF/a-2的文件中;改进了Adobe Flash应用程序、视频(包括H.264的Flash视频)、音频和其他多媒体的附件,Flash播放器和兼容应用程序之间的双向脚本桥,导航器SWF文件可以作为Adobe Flex 2模块或普通SWF加载;XFA 2.5和2.6富文本约定,XFA 2.7和2.8(XFA 2.7、2.8定义了以下功能:web服务的身份验证策略、通过WSDL/SOAP提交、区域设置字体等) | 9 | |
1.7 Adobe Extension Level 5 | 2009 | XFA 3.0 | 9.1 | |
1.7 Adobe Extension Level 6 | 2009 | XFA 3.1 | 9.1 | |
1.7 Adobe Extension Level 8 | 2011 | XFA 3.3(例如XFA中的Flash/SWF集成),AES-256与扩展级别3中的密码处理不同,因为密码检查算法存在缺陷。截至2014年11月未发布的规范 | X (10) |
ISO标准
版本 | 发布年份 | 新特性 |
---|---|---|
1.7(ISO 32000-1:2008) | 2008 | ISO标准ISO 32000-1:2008和Adobe PDF 1.7在技术上是一致的。 |
2.0(ISO 32000-2:2017) | 2017 | 消除所有专有要素,更新、加强和澄清文件,并建立更严格的规则。PDF 2.0还包括许多新功能。 |
2.0(ISO 32000-2:2020) | 2020 | 规范性参考文件的澄清、更正和关键更新 |
PDF的发展趋势
最初,PDF仅被认为是一种页面预览格式,而不是生产格式。然而,各种电子书阅读器充斥着国内和国际市场,并在许多领域取代了纸质媒体。纸质媒体阅读率的下降主要是由于大多数读者已经将注意力从纸质媒体转移到了电子书。尽管电子书市场的销量与传统图书市场相差甚远,但发展势头强劲。大多数电子阅读器制造商已经开始全部或部分支持PDF格式。
Adobe于2009年7月13日宣布,PDF/Archive(PDF/A)作为电子文档的长期存储格式,经中国国家标准化委员会批准,已成为正式的中国国家标准,并于2009年9月1日正式实施。PDF格式文件已成为数字信息的事实上的行业标准。
自1995年以来,Adobe参与了ISO创建和发布技术规范的一些工作组,并与ISO合作开发特定行业和用途的PDF标准专业子集(如PDF/X或PDF/A)。
2007年1月29日,Adobe宣布将向美国国家标准协会(ANSI)和企业内容管理协会(AIIM)发布完整的PDF 1.7规范,供国际标准化组织(ISO)发布。ISO将开发PDF规范作为未来版本,Adobe只是ISO技术委员会的成员。
PDF的发明人
PDF 格式发明者是Adobe 公司联合创始人查尔斯·格什克