本文是对PDF Explained(by John Whitington)的摘要式翻译。
PDF起初是Adobe的一个内部项目,其目标是创建一种平台无关的文档交换方式。当时PostScript已经在印刷界非常流行,但在当时的电脑屏幕显示上还不是很实用–特别是随机访问方面(如果需要渲染一个PostScript文档的第50页,就必须先处理好前49页)。
项目的想法是使用PostScript图片语言的子集加上一些辅助数据来创建一种结构化的语言,可以用于在任何计算机上查看(或打印)文档。
PDF1.0于1993发布,包括Acrobat Distiller(用于创建和编辑PDF文件)和Acroba t Reader(只能用于查看),两款软件都是收费的。后来,Acroba t Reader成为了免费软件,这带来了PDF的广泛使用。
接下来的10年,随着印前(prepress)特性的增加,PDF开始慢慢超越PostScript成为印刷业的首先语言。
不同与PostScript,PDF中的任何对象均可在常数时间内任意访问。这意味着访问第150页不会比第1页更困难。线性化是指在文件中排列对象的过程,以便给定页面所需的所有对象都处于相邻位置。这也解释了为什么你在阅读器中可以迅速跳转到任何页面,因为阅读器不需要加载整个文件。
流式创建允许PDF文件按照从头至尾的顺序创建,即使文件比可用内存要大也没不会有任何问题。
增量更新意味着在编辑文件时,可以直接将更改写入文件末尾而无需改动现有内容。(译者注:旧内容依然存在于文档中,但不会显示。)
PDF中的字体是内嵌于文档中的。这使得无论计算机上是否安装了相关字体,文档都会被正常渲染。程序在创建PDF文档时会移除无用的字体数据,以使得文件不会变得特别臃肿。PDF支持所有通用字体格式,比如TrueType,Type1。(译者注:也可以不内嵌字体,只是指出字体名,这时如果目标设备上没有相关字体,则会用默认字体进行渲染。)
2008年ISO将PDF作为开放标准发布。ISO-32000-1:2008文档与Adobe之前发布的PDF文件格式大致相同。
有一些PDF格式的特殊变体,它们是PDF的子集。每个文件都是一个合法的PDF文档,但是做了一些限制。其中的两个是PDF/A和PDF/X,他们有各自的ISO标准。
PDF/A标准(ISO 190005-1:2005)定义了一套文档规则,主要用于图片馆,档案馆和一些机构的长期存档文件。限制有:
PDF/X是一系列用于印刷行业图形交换的标准。最新的标准是PDF/X-5(ISO 15930-8:2010)
支持多种字体格式(Type1, TrueType, OpenType等等)。古老的位图字体也通过模拟的方式得以支持。支持各种字符编码,包括Unicode。
可以使用任何颜色,图案和透明度对文本进行填充。一段文本可以用作剪辑其它内容的形状,同时文本保持可选择、可编辑。
PDF文档中可以包含位图。图片可以使用各种有损和无损算算法进行压缩。
PDF可以使用与特定电子设备或印刷设备相关的色彩空间(灰度,RGB,CMYK)以及人类色彩感知相关的色彩空间。此外,还有针对印刷行业的色彩空间,比如专色。(译者注:专色是指在印刷时,不是通过印刷C、M、Y、K四色合成这种颜色,而是专门用一种特定的油墨来印刷该颜色。)
PDF文档中有一系列标准的元数据,比如标题,作者,关键词等等。这些是在图形内容之外定义的,对查看文档没有任何影响。创建者(创建内容的程序)和制作者(编写文件的程序)也会被记录下来。每个文档还有一组唯一标识,以便通过工作流对其进行跟踪。
从PDF1.4版本开始,元数据可以使用XML存储,这些XML可以直接嵌入PDF中。这使得第三方可以在文档中保存与其特定工作流或产品相关的信息。
PDF中的可选内容组允许将页面内容的一部组合在一起,根据其它条件(比如用户选择、文档是否在屏幕上显示或打印、缩放比例等)来决定显示或不显示。它的用途之一是用来模拟图形包中的“层”。
PDF文档可以包括各种多媒体元素(幻灯片,声音,视频,3D图稿等等)。这破坏了PDF固有的可移植性,Adobe之外的产品对其支持也不是很好。
表单允许用户填充文本域,使用复选框和单选框。数据填充完成后,可以被保存在文档中或提交至某个URL进行进一步处理。嵌入的JavaScript通常与表单结合使用来校验字段值或做类似的事情。
逻辑结构工具可以将结构信息(章节,图表和脚注)显示在图形内容(graphical content)旁边。
带标签的PDF(tagged PDF)是具有逻辑结构的,这种结构是基于Adobe定义的元素建立的。阅读器可以对遵循这些约定的文档进行重排版,以不同的页面或字体大小显示同样的文本。
PDF文档可以使用RC4或AES方式进行加密。有两种权限的密码,所有者密码和使用者密码。所有者密码允许修改对文档进行各种修改,使用者密码仅允许对所有者授权的部分进行操作。
PDF中的图片和其它数据流都可以使用第三方定义的各种无损和无损压缩方法进行压缩。由于只对这些流进行了压缩,PDF的对象结构是始终可用的,被压缩的部分只在需要时才会被解压。