可移植文档格式

可携式档案格式(PDF)
Adobe PDF.svg
Adobe PDF图示
PDF file icon.svg
副档名 .pdf
网路媒体型式
  • application/pdf,[1]
  • application/x-pdf,
  • application/x-bzpdf,
  • application/x-gzpdf
类型代码 'PDF '[1](包含一个空格)
统一类型标识 com.adobe.pdf
特征签章 %PDF
开发者 Adobe Systems
初始版本 1993年6月15日,​28年前
最新版本
2.0
延伸为 PDF/A, PDF/E, PDF/UA, PDF/VT, PDF/X
标准 ISO 32000-2
自由格式
网站 www.iso.org/standard/63534.html

可携式文件格式(英语:Portable Document Format,缩写:PDF)是一种用独立于应用程式硬体操作系统的方式呈现文件档案格式。每个PDF档案包含固定布局的平面文件的完整描述,包括文字、字形、图形及其他需要显示的资讯。1991年,Adobe Systems共同创始人约翰·沃诺克提出的名为「Camelot」的系统演变成PDF。 如今,PDF档案除平面的文字和图形外,还可能包括逻辑结构元素,注释、表单、图层、富媒体(包括影片内容)之类的互动元素,使用U3D或PRC的三维物件,以及多种其他资料内容。PDF规范还提供了启用这些功能时所需的加密功能、数位签章、文件附件和元资料等。

历史

Adobe Systems在1993年免费提供了PDF规范[4],当时与PDF一起竞逐跨平台文件格式的,还包括 DjVu(仍在开发中)、Envoy、Common Ground Digital Paper、Farallon Replica 及 Adobe 自己本身的 PostScript(.ps)格式。在全球资讯网HTML文字尚未兴起时,PDF在桌面出版工作流技术当中很受欢迎。PDF起初为Adobe所控制的专有格式,直到2008年7月1日才被官方以开放标准发行,并由国际标准化组织以 ISO 32000-1:2008 发布。[5][6] 此后,标准的控制权便移转到了产业专家志愿者所组的ISO委员会底下。2008年,Adobe在 ISO 32000-1 发布了公共专利许可,对于制作、使用、销售及发布PDF相容的应用所需的专利,皆赋予买断式授权[7]

PDF 1.7 含有一些Adobe所定义的专有技术,如Adobe XML表单结构(XFA)和JavaScript中对Acrobat的扩充。这些技术被 ISO 32000-1 参照为对于该规范之完整实现不可或缺且规范性的,但是它们并没有被标准化,其规格也只有发布在Adobe的网站上。[8][9][10][11][12]这些技术大部份也没有被热门的PDF第三方实现所支援。

2017年7月28日,发布了 ISO 32000-2:2017(PDF 2.0)。ISO 32000-2 不将任何专有技术当作是规范性参照档案。[13]

技术基础

PDF主要由三项技术组成:

  • 衍生自PostScript页面描述语言的子集,用以生成和输出图形。
  • 字型嵌入/替换系统,可使字型随档案一起传输。
  • 结构化的储存系统,用以绑定这些元素和任何相关内容到单个档案,带有适当的资料压缩系统。

PostScript

PostScript是一种执行于直译器以生成图像的页面描述语言,一个需要大量资源的行程。不仅能处理图形,也具有ifloop之类命令的标准程式语言特性。PDF很大程度上基于PostScript,但做了简化,以移除像这样的流控制特性,还保持着lineto之类的图形命令。

通常,类PostScript的PDF代码产生于PostScript原始档。以PostScript代码输出的图形命令被收集并标记;其中文件所参照的任何档案图像或字型也被收集,然后每一件都被压缩成单个档案。由此,整个的PostScript领域(字型、输出、计量)得以保持完整。

作为一个文件格式,PDF相比较于PostScript有一些优势:

  • PDF包含已标记和解析的PostScript原始码,以在修改PDF页面描述中的项与修改所产生的页面造型之间直接保持一致。
  • PDF(自1.4版)支援真图形透明度;PostScript不支援。
  • PostScript是一种带有隐形全域状态的直译程式语言,因此伴随着一页的指令能任何后续页面的表现。因此,PostScript文件中所有先前的页面必须经过处理以决定所给出的页面的正确的表现,而PDF文件中的每一页不受其他因素的影响。结果PDF检视器允许使用者迅速跳转到长文件的最后一页,而一个PostScript检视器需要在能够显示目标页面之前继续地处理所有的页面(除可选PostScript文件结构规范已被周密地遵守外)。

技术概括

档案结构

PDF档案是COS("Carousel" Object Structure,Carousel物件结构)格式的子集。COS也伴随着FDF档案。[14]COS树档案主要由物件组成,其中有八种类型:[15]

物件可以是直接(嵌入其他物件)或非直接的。直接物件以物件号及代号编号。称为xref表的索引表赋予每个物件从档案开头起的位元组偏移量。[16]这一设计允许有效的随机存取到档案中的物件,还允许无需重写整个档案(增量更新)即可做出小的改动。从PDF 1.5版开始,非直接物件也可位于称为「物件流」的字串流中。这一增加档案大小的技术有大量小的非直接物件,并且对置标PDF特别有用。

PDF档案有两种输出方式:非线性(非「最佳化」)和线性(「最佳化」)。非线性PDF档案比线性的占用更小的硬碟空间,即使因为一部分的资料要求文件中的集合页面通过PDF档案分散开而存取更慢。线性PDF档案(也称「最佳化」或「web最佳化」PDF档案)以使得网页浏览器外挂程式无需等待下载整个档案来阅读的方式构建,自从它们以线性方式写入硬碟(如同页面顺序)开始。[17]PDF档案可用Adobe Acrobat软体或QPDF最佳化。

图像模式

图形在PDF中呈现的基本设计是以非常类似于PostScript中的方式,除了PDF 1.4增添的透明度的使用。

PDF图形使用装置独立性笛卡儿坐标系来描述页面的外观。一个PDF页面描述可使用矩阵缩放旋转错切图形元素。PDF中的一个主要概念是图形状态,即是可能会通过页面描述修改、储存或还原的图形参数的集合。PDF有(如在1.6版)24种图形状态属性,其中最重要的有:

  • 当前变换矩阵(CTM),决定坐标系
  • 剪下路径
  • 色彩空间
  • 阿尔法复合,透明度的关键部分

向量图

PDF中的向量图如同在PostScript当中一样,是由路径组成的。路径通常由直线和多项的贝兹曲线组成,但也可以从文字的外廓构建。不同于PostScript,PDF不允许带直线和曲线的单一路径去组合文字外廓。路径可被描绘、填充或用于剪取。描绘和填充可用任意图形状态中的色彩集,包括式样。

PDF支援多种调色盘类型。最简单的是瓷砖式样,其中艺术作品的一部分被指定以被重复地绘制。这可能是彩色瓷砖式样,带有在式样物件中的指定的颜色,或是延迟色别编码到式样已绘制时候的没有颜色的瓷砖式样。从PDF 1.3开始还有了底纹式样, 连续绘制不同的颜色。七种底纹式样中最简单的是轴向底纹(Type 2)和径向底纹(Type 3)。

点阵图

PDF中的点阵图(称作Image XObjects)由带相关字串流的字典呈现。字典描述了图像的属性和包含图像资料的流。(少见的是,点阵图或许会作为一个内嵌图像被直接嵌入于页面描述。)图像通常出于压缩的目的过滤。PDF中支援的图像过滤器包含了常用的过滤器

  • ASCII85Decode 用于把字串流放入7位ASCII的过滤器
  • ASCIIHexDecode 类似于ASCII85Decode,但相容性低
  • FlateDecode 基于RFC 1950及RFC 1951所定义的zlib/deflate演算法(亦即gzip,但不是zip)的常用过滤器;引入于PDF 1.2;可用两组预测功能中的一组以进一步相容zlib/deflate演算法:出自TIFF 6.0规格中的Predictor 2和来自PNG规格(RFC 2083)的预测器(过滤器)
  • LZWDecode 基于LZW演算法的过滤器可用两组预测功能中的一组进一步相容LZW压缩:出自TIFF 6.0规格中的Predictor 2和来自PNG规格的预测器(过滤器)
  • RunLengthDecode 使用游程编码演算法和图像指定的过滤器的用于带重复资料的字串流的简单的压缩演算法
  • DCTDecode 基于JPEG标准的有损过滤器
  • CCITTFaxDecode 基于ITU-T T.4和T.6中定义的Group 3或Group 4 CCITT(ITU-T)传真压缩标准的无失真二值(黑白)过滤器
  • JBIG2Decode 基于JBIG2标准的有损或无失真二值(黑白)过滤器,引入PDF 1.4
  • JPXDecode 基于JPEG 2000标准的有损或无失真过滤器,引入PDF 1.5

通常PDF中包含的所有图像嵌入于图像,但PDF允许图像资料通过使用外部字串流或替代图像储存于外部档案。PDF的标准子集,包括PDF/A和PDF/X,禁止这些特性。

文字

文字在PDF中以页面内容字串流中的「文字元素」呈现出来。一个文字元素指定字元应在指定位置描绘。字元用所选字型源的编码指定。

字型

PDF中的字型物件是对数位字型的描述。可能是字型中的字元的描述,或者是包含嵌入的字型档案。后者叫嵌入字型,前者叫非嵌入字型。所嵌入的字型档案基于广泛使用的标准数位字型档案:Type 1(及其压缩版变种CFF)、TrueType和(自PDF 1.6版起)OpenType。另外PDF支援由PDF图形处理器描述的字型组件中的Type 3变种。

Standard Type 1字型(Standard 14字型)

以Standard 14字型著称的四种字型在文件中PDF有特别的意义:

  • Times(v3,常规、斜体、粗体和粗斜体)
  • Courier(常规、斜体、粗体和粗斜体)
  • Helvetica(v3,常规、伪斜体、粗体和粗伪斜体)
  • Symbol/Zapf Dingbats

这些字型有时称作Base 14字型。[18]这些字型或有相同度量的合适的替代字型,必须能用在所有PDF阅读器上,而且不必嵌入PDF。[19]PDF检视器必须掌握这些字型度量。否则字型如果没有嵌入PDF就可能会被替换。

编码

文字字串中,字元用以编码对映字形于当前字型的字元代码(整数)显示。预定义的编码有多种,包括WinAnsi、MacRoman,以及大量东亚语言编码,而且字型可以有自己的编码。(即使WinAnsi和MacRoman编码取自WindowsMacintosh作业系统中历史上的专有编码,用这类编码的内容在任何平台上都执行的好。)PDF可以指定可以使用的预定义的编码、字型内建编码,或者提供预定义或内建编码的查询表(不对TrueType字型推荐)。[20]PDF中的编码机制是为Type 1字型设计的,而且应用到TrueType字型的规则是复合的。

对于大型字型或者带非标准字形的字型,特殊编码Identity-H(用于横写)或Identity-V(用于竖写)被使用。如果关于字元的语意资讯被预定义,这类字型有必要提供ToUnicode表。

透明度

PDF的原始图像模型像PostScript的opaque:页面上描绘的每个物件完全替换先前在同一位置标记的任何东西。在PDF 1.4中图像模型被扩充以允许透明度。使用透明度的时候,新物件与先前标记的物件相互作用产生混合的特效。透明度添加到PDF由写到PDF 1.3及早期的规格的产品中被忽略设计的新的扩充方法完成。结果,使用少量透明度的档案在旧的检视器中可能会以被接受地视图检视,但大量用透明度的档案在旧的检视器中会显示不正确而没警告。

透明度扩充基于透明度组、混合模式、形状和alpha的关键概念。这一模式紧密对应Adobe Illustrator 9的特性。混合模式基于当时Adobe Photoshop所用的。PDF 1.4规格出版的时候,用于计算混合模式的公式被Adobe保密。此后它们被公布。[21]

PDF规格中透明度组的概念独立于Adobe Illustrator之类的应用中已有的「组」或「层」的概念。那些反映物件之上的逻辑关系的分组在编辑那些物件的时候有意义,但不是图像模型的一部分。

互动式元素

PDF档案或许包含注释、表单、影片和Flash动画之类的互动式元素。

富媒体PDF是一个用来描述可以嵌入或链入PDF的互动式内容的术语。这一内容必须用Flash档案格式提供。Adobe收购Macromedia的时候,公司的主业是Flash,而且Flash播放器被嵌入Adobe Acrobat,Adobe Reader,移除了用于Flash、QuickTime或Windows Media之类第三方外挂程式的需。不幸的是,这造成QuickTime影片从PDF被禁这样与苹果公司的裂痕。富媒体专家Robert Connolly相信这一事件引发了苹果与Adobe之间Flash iPhone/iPad争论之上的冲突。富媒体PDF将不在苹果的iPad之类的iOS装置上操作,而且互动性受到限制。

互动式表单是一个添加表单到PDF档案格式的机制。

PDF当前支援用于整合资料和PDF表单的两种不同的办法。两种格式今天并存于PDF规格:[22][23][24][25]

  • AcroForms(又叫Acrobat forms)引入PDF 1.2格式规格并包含于所有后来的PDF规格。
  • Adobe XML表单架构(XFA)的表单,引入PDF 1.5格式规格。XFA规格没有包含于PDF规格,仅仅作为可选特性参考。Adobe XFA表单不与AcroForms相容。[26]

AcroForms

AcroForms于PDF 1.2格式被引入。AcroForms准许使用物件(如文字方块选择钮等)及一些代码(如JavaScript)。

在标准PDF动作类型之外,互动式形式(AcroForms)支援提交、重设和汇入资料。「提交」动作传送所选表单栏位和值的名称给指定的统一资源定为符(URL)。互动式表单栏位名称和值或许会被以任意格式提交(取决于输出格式、提交的PDF和XFDF旗标的设定):[22]

  • HTML表单格式(自PDF 1.5起用HTML 4.01规格;1.2起用HTML 2.0)
  • 表单资料格式(Forms Data Format,FDF)
  • XML表单资料格式(XML Forms Data Format,XFDF)(扩充XFDF规格,2.0版;自PDF 1.5起被支援;在PDF 1.4中替换XML表单提交格式定义)
  • PDF(整个文件可以被提交,而不是单独的栏位和值)。(PDF 1.4中定义)

AcroForms可以保持表单栏位于包含key:value组合的外部的单独的档案。内部的档案可能使用FDF和XFDF档案。[27][28][29]使用权(UR)签章定义汇入表单资料档案以FDF、XFDF及文字(CSV/TSV)格式,及以FDF及XFDF格式从资料档案汇出档案的权利。[22]

表单资料格式(FDF)
表单资料格式(FDF)
副档名 .fdf
网路媒体型式 application/vnd.fdf[30]
类型代码 'FDF'
开发者 Adobe Systems
初始版本 1996年(PDF 1.2)
延伸自 PDF
延伸为 XFDF
标准 ISO 32000-1:2008
自由格式

表单资料格式(Forms Data Format,FDF)基于PDF,使用同样的句法和基本上一样的档案结构,但比PDF简单,自从FDF文件的主体由只有一个要求的物件组成开始。表单资料格式定义于PDF规格(自PDF 1.2起)。表单资料格式可在表单资料到伺服器、接收回应和组合到互动式表单的时候被使用。还可以被用来汇出表单资料到能被导回到相应的PDF互动式表单的单独的档案。从PDF 1.3开始,FDF可被用来定义用于从所应用的PDF文件分开的注释的容器。FDF通常封装X.509凭证之类的资讯、要求凭证、设定目录、设定时间戳伺服器和为网路传输嵌入PDF档案。[29]FDF使用MIME内容类型application/vnd.fdf、副档名.fdf,并在Mac OS使用档案类型'FDF'。[22]汇入和汇出独立FDF档案的支援没有被自由或免费PDF软体广泛的实现。例如,Evince、Okular、Poppler、KPDF或Sumatra PDF没有汇入/汇出的支援,然而,Evince、Okular和Popller填入PDF Acroforms并在PDF中储存已填写资料。汇入独立FDF档案的支援在Adobe Reader中得到实现;汇入和汇出支援(包括在PDF中储存FDF资料)作为范例在Foxit Reader和PDF-XChange Viewer Free中得到实现;PDF档案中FDF资料的储存也被pdftk支援。

XML表单资料格式(XFDF)
XML表单资料格式(XFDF)
副档名 .xfdf
网路媒体型式 application/vnd.adobe.xfdf[31]
类型代码 'XFDF'
开发者 Adobe Systems
初始版本 2003年7月(参照于PDF 1.5)
最新版本
3.0
2009年8月,​12年前
延伸自 PDF、FDF、XML
标准 ISO 19444-1:2016

XML表单资料格式(XFDF,XML Forms Data Format)是表单资料格式的XML版,但XFDF只执行FDF内含表单及注释的子集。FDF字典中的一些词条没有等价于XFDF的,像是状态、编码、JavaScript、页面关键字、嵌入式FDF、差异和目标。此外,XFDF不允许在基于已给定的资料的新页面大量生成或者添加;就像使用FDF档案的时候能被完成的一样。XFDF规格被参照于(但不包含于)PDF 1.5规格(及其以后的版本)。它被单独描述为「XML表单资料结构规格」(XML Forms Data Format Specification)。[28]PDF 1.4规格允许以XML格式提交表单,但在PDF 1.5规格中以XFDF格式提交取代。XFDF符合XML标准。

到2016年12月,XFDF 3.0在ISO 19444-1:2016 – Document management – XML Forms Data Format – Part 1: Use of ISO 32000-2 (XFDF 3.0)的名义下成为ISO/IEC标准。[32]这个标准是ISO 32000-2的规范性参考资料。

XFDF可用以和FDF相等的方式,如提交表单资料给伺服器,做出修订,然后返回,并且新表单资料被汇入到互动式表单。它还可以用来汇出表单资料到能被导回到相应的PDF互动式表单的单独的档案。

Adobe XML表单架构(XFA)

PDF 1.5格式中,Adobe Systems引入了新的、专有的表单格式,名为Adobe XML表单架构(XFA)。XFA 2.02参照在PDF 1.5规格(及以后的版本),但单独描述为《Adobe XML Forms Architecture (XFA) Specification》,有多个版本。[33]XFA规格没有包括在ISO 32000-1 PDF 1.7并仅仅作为由Adobe建立的外部专有规格参照。在ISO 32000-2(PDF 2.0)当中被弃用。

Adobe XFA表单不与AcroForms相容。Adobe Reader包含使用XFA表单的「禁用特性」,仅在打开只来自Adobe的可行的技术建立的PDF文件时启用。[34][35]XFA Forms不相容于Adobe Reader 6以前的版本。

XFA表单可建立或用作PDF档案或作为XDP(XML封包)档案。PDF中XFA源的格式由XML封包规格描述。[22]XDP可能作为单独的文件,也可能在PDF文件的内部携带。XDP提供打包周边XML容器内部的表单组件的机制。XDP也可以打包一个PDF档案,伴随XML表单和模板资料。[33]PDF可能包含XFA(在XDP格式中),XFA也可能包含PDF。[33]在用于XFA表单XFA(XML表单架构)语法从一个应用移到另一个应用的时候,它们必须以XML封包封装。[36]

当PDF和XFA结合在一起,结果是任意页面中的XFA表单覆盖了PDF背景。这一架构有时被提作XFAF(XFA Foreground,XFA前景)。替代方法是直接在XFA(不用PDF,或者只用带有PDF标记的最小构造XFA的容器的「外挂PDF」,或用静态XFA表单的预彩现描述作为PDF)展开所有表单,包括样板档案。这有时被称为全XFA。[36]

PDF 1.5开始,可变文字栏位的文字内容,以及标记注解可能包含格式资讯(样式资讯)。这些富文字字串是符合XML表单架构规格2.02(本身是XHTML 1.0规格的子集)定义的富文字惯例的XML文件,扩充了CSS2样式属性中受限的设定。[22]PDF 1.6中,PDF支援XML表单架构(XFA)规格2.2定义的富文字元素和属性。PDF 1.7中,PDF支援XML表单架构(XFA)规格2.4定义的富文字元素和属性。[22]

多数PDF处理器不处理XFA内容。生成外挂PDF的时候会被建议包含于PDF标记的一个简单的单页PDF图像显示警告(如:「为了检视本文件的全部内容,你需要新版PDF检视器」等。)能彩现XFA内容的PDF处理器应该不现实警示页面图像或者以动态表单内容迅速替换。[37]带有一些XFA彩现功能支援的PDF软体的例子包括Adobe Reader for Windows、Linux、Mac OS X(但不是Adobe Reader Mobile for Android / iOS)或Nuance PDF Reader。

逻辑架构与可读性

「标签」PDF(ISO 32000-1:2008 14.8)含有文件架构和语意资讯,以允许可靠的文字抽取及使用。技术上来说,标签PDF是建立在PDF 1.3 所引入的逻辑结构框架上,对于其格式的程式化使用 。标签PDF定义了一组标准结构型别及属性,允许页面内容(文字、图形和图片)之后被提取并再利用于其他用途。[38]

当PDF档案仅供列印时,并不要求支援标签PDF。因为此一特色是非必须的,且 ISO 32000-1 对于标签PDF的规则相对模糊,所以在消费性装置当中,包括辅助技术(AT),标签PDF的支援参差不齐。[39]

一个专门针对可读性、为ISO标准之子集的PDF规格:PDF/UA 于2012年首次发布。

安全和签章

一份PDF档案可能以用于验证的担保或者数位签章加密。

由Acrobat PDF提供的标准担保以两种不同的方法及两种不同的密码组成,使用者密码,加密档案并阻止开启;所有者密码,指定即使文件被解密的时候应该被限制的操作,可以包括:列印、从文件复制文字和图像、修饰文件,或者添加或删除文字注释和AcroForm栏位。使用者密码(控制开启)加密档案并要求密码破解以去除,难度取决于密码长度及加密演算法——它可能非常安全(假设好的密码及加密演算法没有已知的攻击手法)。所有者密码(控制操作)不加密档案,相反取决于客户端软体以遵循这些限制,并且不安全。所有者密码可以被许多通常可用的PDF破解软体移除,包括一些自由的线上服务。[40]由此,文件作者放在PDF文件中的使用限制不安全,而且不能在一旦档案被散布时保证;这一危险在使用Adobe Acrobat软体以建立或编辑PDF档案应用这类限制的时候显现出来。

即使没有移除密码,许多免费或开源PDF阅读器忽略权限「保护」并允许使用者列印或者做文字摘要的复制,就像文件没被密码保护限制一样。

一些解决方案像Adobe的LiveCycle Rights Management更强化资讯权利管理的方式,不仅能限制谁能打开文件,而且以标准的安全处理程式做不到的方式可靠的执行权限。

使用权

从PDF 1.5起,使用权(UR)签章用来启用在一些PDF检视器应用中不是预设的附加的互动式特性。这一签章用来验证由真实的授权机构赋予的许可。例如,它可以允许使用者:[22]

  • 储存伴有修订表单和/或注释资料的PDF文件
  • 从FDF、XFDF和文字(CSV/TSV)格式中的资料档案汇入
  • 从FDF和XFDF格式中的资料档案汇出
  • 从资料提交
  • 从命名的页面模板具体呈现新页面
  • 应用一个数位签章到已有的数位签章表单栏位
  • 建立、删除、修正、复制、汇入、汇出注释

例如,Adobe Systems在Adobe Reader中授权启用附加特性,使用公钥密码学。Adobe Reader使用从一个Adobe授权的权威认证的验证那个签章。PDF 1.5规格宣称其他PDF阅读器应用可以为他们自己的目的自由使用这一相同机制。[22]

档案附件

PDF档案可以有文件级和页面级的档案附件,读者可存取并打开或储存于原生的档案系统。PDF附件可作为范例用pdftk加到已有的PDF档案。Adobe Reader提供对附件的支援,而且基于Poppler的阅读器如EvinceOkular也有对文件级附件的支援。

元资料

PDF档案可包含两种类型的元资料。[41]第一种是文件资讯字典,一套像作者、标题、主题、建立及更新日期的关键字/值栏位。这储存于可选的档案尾部。有一小组栏位是有定义的,而且如果有需要,可以用附加的文字栏位扩充。

后来在PDF 1.4中,对元资料流的支援被加入,用可延伸元资料平台(XMP)来添加像在其他档案格式那样的基于XML标准的可延伸的元资料。这允许元资料附加到文件中的任何字串流,诸如关于嵌入式插图的说明,以及整个文件(附加到文件目录),使用可延伸的纲要。

相关技术

Mars

Adobe曾探索基于XML的下一代PDF,代号Mars。[42]

Mars的图形元素的格式有时简单地描述为SVG[43]但根据2007年11月的0.8版草案规格(§3 Mars SVG Support)这一格式实际上仅仅是接近于SVG:它同时包含SVG新增和移除的部分,因此一般不可被标准SVG工具检视或建立:一些东西在SVG检视器和Mars检视器之间看起来明显不同。

Adobe Systems于2008年停止开发Mars。[44]

技术问题

扫描的文件

扫描器硬拷贝文件建立的PDF档案包含原始文字没有由相同的文件直接建立的PDF档案那样相同的架构。扫描的文件原本地包含了文件的图片,没有关于文字的资讯。只要使用者可以看到它只是另一个PDF档案,带有从其他任意地方来的不能区分的名称和副档名;好的扫描器或许会精确地视作与原生的PDF档案相同,即使是视觉上品质很差的档案,常常带有扭曲的页面,给出了其本性。然而,档案大小会明显不同,而且不能搜寻文字。对于精确品质的扫描可以用带光学字元辨识(OCR)的合适的软体辨识文件中的文字,并嵌入文件中而使其可以检索,取决于OCR的准确性。

可读性

PDF档案可专门为让残疾人阅读而建立。[45][46][47][48][49]截至2014年PDF档案格式在使用中可以包含标签(XML)、替换文字、标题、音讯描述等。置标PDF在PDF/A-1a规格中被要求。[50][51]一些软体可以自动生成置标PDF,但这个特性不被预设启用。[52][53]常见的萤幕阅读器,包括JAWS、Window-Eyes、Hal和Kurzweil 1000及3000可以朗读置标PDF,就像Acrobat和Acrobat Reader后来的版本一样。[54][55][56]此外,置标PDF可为有视觉障碍的读者重排和放大。问题仍存在于给旧版PDF和从扫描的文件生成的PDF加标记。这些情况下,可读性标记和重排就不可用,而且必须手动或用OCR技术处理。这些过程对于一些残疾人是达不到的。

对PDF可读性的一个重大挑战是PDF文件有三种不同的视图,取决于文件的建立,会和其他视图相矛盾。这些视图有:物理视图、标记视图和内容视图。物理视图可以显示和列印(多数人认为的PDF文件)。标记视图是萤幕阅读器和其他存取技术用来给有障碍的使用者带来高品质导航和阅读体验的。内容视图基于PDF内容字串流中的物件的物理排列,并可能由不完全支援标记视图的软体显示,如Adobe Reader的Reflow特性。

基于ISO 32000-1的可阅读PDF国际标准PDF/UA在2012年以ISO 14289-1发布,并为可阅读PDF技术建立规范的语言。

病毒和漏洞

PDF附件带病毒最先发现于2001年。这种名为OUTLOOK.PDFWorm或Peachy的病毒,会通过Microsoft Outlook以附件的形式将自己传送至Adobe PDF档案。然后会用Adobe Acrobat将自身启用,但不会被Acrobat Reader启用。[57]

随着时间推移,新的漏洞在Adobe Reader的多个版本被发现,[58]促使企业发出安全性修复。其他PDF阅读器也容易受到影响。一个恶化的因素是PDF阅读器会被组态在网页嵌入PDF时候自动启动,为攻击带来了载体。如果恶意的网页包含一份利用PDF的漏洞感染的PDF档案,系统会无法抵抗,即使浏览器是安全的。其中一些漏洞是由于PDF标准允许PDF文件用JavaScript指令码指令的结果。在PDF阅读器中禁止执行JavaScript有助于缓解那些未来的漏洞,即使这不阻止PDF检视器其他部分的漏洞。安全专家称JavaScript对于PDF阅读器来说不是基本的,而且出于禁止JavaScript的安全保障胜过任何造成的相容性问题。[59]阻止PDF档案漏洞的一种方式是有本地或网路服务能在阅读前把档案转换成其他格式。[60]

2010年3月30日安全专家Didier Stevens报告Adobe Reader和福昕阅读器有如果使用者经询问允许启动时执行恶意可执行档的漏洞。[61]

使用限制和显示

PDF可能会被加密,以致检视或编辑内容时会要求输入密码。PDF参考书同时定义40位和128位元加密,都运用RC4MD5的复杂系统。PDF参考书还定义第三方可以制定他们自己的PDF加密系统的方式。

PDF档案或许还包含嵌入的DRM限制,提供限制复制、编辑或列印的进一步控制。复制、编辑或列印的限制取决于阅读软体遵循他们,因此他们提供的安全机制是有限的。

PDF参考书有面向终端使用者概览的技术细节。[62]就像HTML档案一样,PDF档案可以向网路伺服器提交资讯。这可以被用来追踪客户端PC的IP位址,这一过程被称作背景连线通讯。Acrobat Reader升级到7.0.5以后,使用者会被提示「...via a dialogue box that the author of the file is auditing usage of the file, and be offered the option of continuing」。[63]

Adobe通过LiveCycle安全伺服器提供针对特定文件设定安全策略的方法。这可以包括要求使用者认证并限制文件可被离线打开的时候可以被存取或者载入的时期。PDF文件一旦被系结到策略伺服器和指定策略,这一策略可以被所有者更改或复原。这一策略控制文件,否则就是「在自然状态下」。每个文件打开或关闭事件也可以被策略伺服器追踪。策略伺服器可以由个人设定,或Adobe通过Adobe线上服务提供公共服务。和其他DRM形式一样,依附这些策略和限制有可能会,也有可能不会被阅读器软体执行。

预设的显示设定

PDF文件可以包含显示设定,包括页面显示输出和缩放级别。打开文件的时候Adobe Reader用这些设定去替换使用者的预设设定。[64]免费的Adobe Reader不能移除这类限制。

内容

PDF档案通常混合了向量图形、文字和点阵图。PDF的基本内容包括:

  • 文字储存为内容字串(就是不是文字本身)
  • 由图形和线条组成的用于说明和设计的向量图形
  • 由相片和其他类型的图片组成的点阵图

在近期PDF标准修订中,PDF文件还支援连结(文件内部或网页)、表单、JavaScript(可通过Acrobat 3.0的外挂程式启用),或者其他任意类型的能用外挂程式控制的可嵌入内容。

PDF 1.6支援互动式3D文件嵌入PDF——3D绘图可用U3D或PRC及其他多种格式嵌入。[65][66]

在电脑萤幕上看起来相似的两个PDF档案有可能大小不同。例如,一个高解析度点阵图比低解析度的占更多的储存空间。通常更高的解析度更适宜列印文件而不是显示于萤幕。其他可能影响档案大小的可能有嵌入全部字型,尤其是东亚字型,以及将文字存为图片。

软体

PDF通常免费提供,而且许多版本可以从多个来源获得。

有许多软体选项用来建立PDF,包括内建于Mac OS X及多数Linux发行版、LibreOfficeMicrosoft Office 2016[67]WordPerfect 9、Scribus许多适用于Microsoft Windows的PDF列印驱动、pdfTeX排版系统、DocBook PDF工具、围绕GhostscriptAdobe Acrobat本身开发的应用以及Adobe FrameMaker的PDF排印功能。Google的线上办公套件Google Docs也允许上传、储存为PDF。

光栅图像处理器(RIPs)用于转换PDF档案为点阵图格式以适应于成像在纸上及其他媒体的印表机、数字生产用印刷机以及一种被称为栅格化的行程中的印前。有直接处理PDF能力的RIP包括在出自Adobe Systems和Jaws[68]的Adobe PDF排印引擎[69]与出自Global Graphics的Harlequin RIP当中。

有一些软体可以直接建立空白的 PDF 文件,例如 Adobe 官方的 Adobe Acrobat DC ,但是通常意义不大;因为 Adobe Acrobat 并不擅长于对文件进行排版。

因为 PDF 具有完美展现档案原貌的功能,因此市面上也有一部分软体并非为 PDF 而生,但是通过一些开发函式库或者图形绘制框架也具有 PDF 的汇出功能。

一些用于编辑PDF档案的特殊软体,通过受很多限制并且比建立和编辑标准可编辑文件格式更昂贵的选择。Inkscape 0.46及以后版本允许通过Poppler加入中间的转译步骤编辑PDF。

Adobe Acrobat DC 允许使用者对一个未加密的 PDF 档案或者具有相关权限使用者对 PDF 档案进行编辑,同时还内建了 OCR 辨识、注释、表单预备、合并,数位签章等十分完善的功能[70]

Serif PagePlus可打开、编辑和储存已有的PDF文件,以及软体套件中建立的文件的发布。

Microsoft Office Word也支援打开、编辑和储存已有的PDF文件的编辑功能。

Enfocus PitStop Pro,Acrobat的外挂程式,允许PDF档案的手动和自动编辑,[71]同时免费的Enfocus Browser可以使编辑PDF的低阶别架构成为可能。[72]

大多数的 TeX 档案经过编译系统后预设输出格式为 PDF 档案

注释

Adobe Acrobat是允许使用者给已建立的PDF档案注释、突显和添加笔记的专有软体的一个案例。作为自由软体可用的(GNU通用公共许可协定许可下)一个UNIX应用是PDFedit。另一个GPL授权的原生UNIX应用是Xournal。Xournal允许以不同的字型和颜色注释,以及用于为文字或段落的快速下划及突显线条的规则。Xournal还有一个用于方形、矩形和圆形的形状辨识工具。Xournal中的注释可以被移动、复制或贴上。免费软体福昕阅读器,适用于Microsoft Windows,允许注释文件。Tracker Software的PDF-XChange Viewer的免费版允许不受限制的注释和标记。苹果Mac OS X内建PDF阅读器Preview也可以像免费软体Skim那样注释,后者支援与LaTeX、SyncTeX和PDFSync整合,以及与BibDesk参考文献管理软体整合。免费软体Qiqqa可以建立总结所有注释的报告,而且笔记通过他们的PDF函式库做出来。

对于行动版的注释,iAnnotate PDF(来自Branchfire)和GoodReader(来自Aji)允许对PDF注释以及汇出注释的摘要。

还有一些支援注释PDF及其他文件格式web注释系统,如A.nnotate、crocodoc、WebNotes。

在PDF被期望拥有纸质文件的全部功能的地方,墨水注释会被要求。一些接受来自滑鼠的墨水输入的程式可能不足以对应平板上的手写输入。PC上已有的解决方案包括PDF Annotator和Qiqqa。

其他

PDF软体作为线上服务的例子包括用于检视和储存的Scribd、用于线上编辑的Pdfvue和用于PDF转换的Zamzar。

1993年出自Global Graphics的Jaws点阵图处理器成为第一个不用转换到其他格式原生产生PDF的销售用的印前RIP。公司在1997年给他们的Harlequin RIP发布了一个有同样相容性的更新。[73]

爱克发-吉华1997年推介并出售Apogee,第一个基于PDF的印前工作流系统。

许多商业的胶印机接受递交发布就绪的PDF档案作为印刷来源,特别是PDF/X-1a子集和相同的变种。[74]发布就绪的PDF档案的提交是对接收已收集本地档案工作的不确定性需求的替代。

PDF被选为Mac OS X的「本地」元档案格式,取代早期Mac OSPICT格式。Quartz图形层的图像模式基于Display PostScript和PDF共有的模式,产生了暱称Display PDF。Preview应用与Safari网页浏览器2.0及以后版本都可以显示PDF档案。对PDF的系统级支援使得Mac OS X应用可以自动建立PDF文件,给它们提供OS标准的列印架构支援。档案可以按档案档头输出为PDF 1.3格式。在Mac OS X 10.0到10.3版截图时,图像也可以截取为PDF;后来的版本储存截图为PNG档案,虽然这一行为若有需要可以重新设定为PDF。

一些桌面印表机也支援直接列印PDF,可以不用额外的辅助生成PDF资料。目前,所有PDF相容印表机也支援PostScript,但多数PostScript印表机不直接支援PDF列印。

自由软体基金会曾认为他们的一个高优先级计划「提供自由、高品质和全功能的一组软体函式库及程式实现PDF档案格式及ISO 32000标准的相关技术」。[75][76]而在2011年,GNU PDF计划从「高优先级」列表中被移除,因为Poppler函式库的完善,[77]激励了像Evince之类的应用与GNOME桌面环境的广泛应用。Poppler基于Xpdf[78][79]代码。PDF软体列表亦列出可用的商业开发用软体函式库。

Apache软体基金会Apache PDFBox计划是一款用于处理PDF文件的开放原始码Java函式库。PDFBox以Apache许可证授权发布。[80]

一个名为 Devon Govett页面存档备份,存于网际网路档案馆) 的 Adobe 员工在 GitHub 上开源了一款用于 JavaScript 的 PDF 操作函式库 PDFKit页面存档备份,存于网际网路档案馆

Apple 开发者早期使用 QuartzCGPDFDocument页面存档备份,存于网际网路档案馆) 来绘制一个 PDF 文件,但是因为使用较为底层的图形函式库绘制 PDF 文件和检视十分麻烦,因此在 2017 年的 WWDC 大会上 Apple 引进了 PDFKit页面存档备份,存于网际网路档案馆) 来让开发者在 Apple 产品的作业系统上让自己的 App 支援绘制,检视,标注 PDF 等等功能[81]

参考文献

  1. ^ 1.0 1.1 The application/pdf Media Type, RFC 3778, Category: Informational, 2004 [2015-01-18], (原始内容存档于2021-02-24) 
  2. ^ Adobe Systems Incorporated, PDF Reference, Sixth edition, version 1.23 (30 MB)页面存档备份,存于网际网路档案馆), Nov 2006, p. 33.
  3. ^ Warnock, J. The Camelot Project (PDF). PlanetPDF. 1991 [2014-05-27]. (原始内容存档 (PDF)于2009-03-04). This document describes the base technology and ideas behind the project named 「Camelot.」 This project’s goal is to solve a fundamental problem [...] there is no universal way to communicate and view ... printed information electronically. 
  4. ^ The Camelot Project (PDF). [2014-05-27]. (原始内容存档 (PDF)于2009-03-04). 
  5. ^ ISO 32000-1:2008 - Document management – Portable document format – Part 1: PDF 1.7. Iso.org. 2008-07-01 [2010-02-21]. (原始内容存档于2010-12-06). 
  6. ^ Orion, Egan. PDF 1.7 is approved as ISO 32000. The Inquirer. The Inquirer. 2007-12-05 [2007-12-05]. (原始内容存档于2007-12-13). ; Adobe wins backing for PDF 1.7. vnunet.com. [2015-01-18]. (原始内容存档于2007-12-20). 
  7. ^ Adobe Systems Incorporated, Public Patent License, ISO 32000-1: 2008 – PDF 1.7 (PDF), 2008 [2011-07-06], (原始内容存档 (PDF)于2020-10-28) 
  8. ^ Guide for the procurement of standards-based ICT – Elements of Good Practice, Against lock-in: building open ICT systems by making better use of standards in public procurement. European Commission. 2013-06-25 [2013-10-20]. (原始内容存档于2020-09-19). Example: ISO/IEC 29500, ISO/IEC 26300 and ISO 32000 for document formats reference information that is not accessible by all parties (references to proprietary technology and brand names, incomplete scope or dead web links). 
  9. ^ ISO/TC 171/SC 2/WG 8 N 603 – Meeting Report (PDF), 2011-06-27 [2014-05-27], (原始内容存档 (PDF)于2012-11-26), XFA is not to be ISO standard just yet. ... The Committee urges Adobe Systems to submit the XFA Specification, XML Forms Architecture (XFA), to ISO for standardization ... The Committee is concerned about the stability of the XFA specification ... Part 2 will reference XFA 3.1 
  10. ^ Embedding and publishing interactive, 3-dimensional, scientificfigures in Portable Document Format (PDF) files. [2013-10-20]. (原始内容存档于2016-03-04). ... the implementation of the U3D standard was not complete and proprietary extensions were used. 
  11. ^ Leonard Rosenthol, Adobe Systems. PDF and Standards (PDF). 2012 [2013-10-20]. (原始内容 (PDF)存档于2013-09-02). 
  12. ^ Duff Johnson, Is PDF an open standard? - Adobe Reader is the de facto Standard, not PDF, 2010-06-10 [2014-01-19], (原始内容存档于2016-04-16) 
  13. ^ ISO 32000-2 – Document management -- Portable document format -- Part 2: PDF 2.0. www.iso.org. [2017-07-28]. (原始内容存档于2020-12-10) (英语). 
  14. ^ 存档副本. [2015-01-20]. (原始内容存档于2020-05-08). 
  15. ^ Adobe Systems, PDF Reference, p. 51.
  16. ^ Adobe Systems, PDF Reference, pp. 39–40.
  17. ^ Adobe Developer Connection: PDF Reference and Adobe Extensions to the PDF Specification. Adobe Systems. [2010-12-13]. (原始内容存档于2010-12-03). 
  18. ^ Adobe Acrobat Base 14 Fonts. [2015-01-20]. (原始内容存档于2016-06-14). 
  19. ^ The PDF Font Aquarium (PDF). [2015-01-20]. (原始内容存档 (PDF)于2007-06-14). 
  20. ^ PDF Referencem Sixth Edition, version 1.7, table 5.11 (PDF). [2015-01-18]. (原始内容存档 (PDF)于2020-12-04). 
  21. ^ PDF Blend Modes Addendum (PDF). [2015-01-20]. (原始内容存档 (PDF)于2016-04-17). 
  22. ^ 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 Adobe Systems Incorporated, Document Management – Portable Document Format – Part 1: PDF 1.7, First Edition (PDF), 2008-07-01 [2010-02-19], (原始内容存档 (PDF)于2010-04-09) 
  23. ^ Gnu PDF - PDF Knowledge - Forms Data Format. [2010-02-19]. (原始内容存档于2013-01-01). 
  24. ^ About PDF forms. [2010-02-19]. (原始内容存档于2011-04-29). 
  25. ^ Convert XFA Form to AcroForm?. 2008 [2010-02-19]. (原始内容存档于2018-11-18). 
  26. ^ Migrating from Adobe Acrobat forms to XML forms. [2010-02-22]. (原始内容存档于2010-10-06). 
  27. ^ Adobe Systems Incorporated. Using Acrobat forms and form data on the web. 2007-10-15 [2010-02-19]. (原始内容存档于2021-02-24). 
  28. ^ 28.0 28.1 XML Forms Data Format Specification, version 2 (PDF), September 2007 [2010-02-19], (原始内容 (PDF)存档于2009-12-23) 
  29. ^ 29.0 29.1 FDF Data Exchange Specification (PDF), 2007-02-08 [2010-02-19], (原始内容存档 (PDF)于2010-05-24) 
  30. ^ IANA Application Media Types - vnd.fdf, [2010-02-22], (原始内容存档于2011-08-22) 
  31. ^ IANA Application Media Types - Vendor Tree - vnd.adobe.xfdf, [2010-02-22], (原始内容存档于2021-02-24) 
  32. ^ ISO 19444-1:2016 – Document management -- XML Forms Data Format -- Part 1: Use of ISO 32000-2 (XFDF 3.0). www.iso.org. [2017-02-28]. (原始内容存档于2021-02-24) (英语). 
  33. ^ 33.0 33.1 33.2 Adobe Systems Incorporated. Adobe XML Forms Architecture (XFA). [2010-02-19]. (原始内容存档于2009-12-23). 
  34. ^ Adobe Reader - Software license agreement (PDF), [2010-02-19], (原始内容存档 (PDF)于2012-11-26) 
  35. ^ LiveCycle Reader Extensions ES features and benefits. [2010-02-19]. (原始内容存档于2009-12-19). 
  36. ^ 36.0 36.1 XML Forms Architecture (XFA) Specification Version 2.5 (PDF), 2007-06-08 [2010-02-19], (原始内容 (PDF)存档于2009-12-23) 
  37. ^ XML Forms Architecture (XFA) Specification Version 3.3 (PDF), 2012-01-09 [2014-04-09], (原始内容 (PDF)存档于2015-07-06) 
  38. ^ What is Tagged PDF?. [2015-01-20]. (原始内容存档于2004-08-07). 
  39. ^ Is PDF Accessible?. [2015-01-20]. (原始内容存档于2014-12-22). 
  40. ^ FreeMyPDF - A website that removes PDF user password restrictions. [2015-01-20]. (原始内容存档于2021-02-20). 
  41. ^ Adobe PDF reference version 1.7页面存档备份,存于网际网路档案馆), section 10.2
  42. ^ Jackson, Joab. Adobe plunges PDF into XML. Government Computer News. 2006-12-07 [2008-01-12]. (原始内容存档于2008-02-16). 
  43. ^ Adobe Systems. Mars. [2014-03-17]. (原始内容存档于2020-09-20). 
  44. ^ 存档副本. [2011-05-12]. (原始内容存档于2011-01-02). 
  45. ^ PDF Accessibility. WebAIM. [2010-04-24]. (原始内容存档于2021-02-24). 
  46. ^ Joe Clark. Facts and Opinions About PDF Accessibility. 2005-08-22 [2010-04-24]. (原始内容存档于2013-01-24). 
  47. ^ Accessibility and PDF documents. Web Accessibility Center. [2010-04-24]. (原始内容存档于2010-04-27). 
  48. ^ PDF Accessibility Standards v1.2. [2010-04-24]. (原始内容存档于2020-02-23). 
  49. ^ PDF Accessibility (PDF), California State University, [2010-04-24], (原始内容 (PDF)存档于2010-05-27) 
  50. ^ Frequently Asked Questions (FAQs) – ISO 19005-1:2005 – PDF/A-1, Date: July 10, 2006 (PDF), 2006-07-10 [2011-07-06], (原始内容 (PDF)存档于2012-01-18) 
  51. ^ PDF/A – A Look at the Technical Side (PDF). [2011-07-06]. (原始内容 (PDF)存档于2011-07-26). 
  52. ^ LibreOffice Help - Export as PDF, [2012-09-22], (原始内容存档于2021-02-25) 
  53. ^ Exporting PDF/A for long-term archiving, 2008-01-11 [2015-01-23], (原始内容存档于2021-02-24) 
  54. ^ Adobe Reader 8 - Read a PDF with Read Out Loud. [2010-04-24]. (原始内容存档于2016-01-18). 
  55. ^ Biersdorfer, J.D. Tip of the Week: Adobe Reader’s ‘Read Aloud’ Feature. The New York Times. 2009-04-10 [2010-04-24]. (原始内容存档于2020-11-22). 
  56. ^ Accessing PDF documents with assistive technology: A screen reader user's guide (PDF), Adobe, [2010-04-24], (原始内容存档 (PDF)于2013-02-02) 
  57. ^ Adobe Forums, Announcement: PDF Attachment Virus "Peachy", 15 August 2001.
  58. ^ Security bulletins and advisories. Adobe. [2010-02-21]. (原始内容存档于2013-11-15). 
  59. ^ Steve Gibson - SecurityNow Podcast. [2015-01-23]. (原始内容存档于2020-05-08). 
  60. ^ PDFCleaner - PDF Exploit Sanitizer. [2015-01-23]. (原始内容存档于2013-04-30). 
  61. ^ PCmag.com blogs. [2015-01-23]. (原始内容存档于2010-04-04). 
  62. ^ Create Adobe PDF Online - Security Settings Help. Createpdf.adobe.com. [2010-02-21]. (原始内容存档于2009-12-23). 
  63. ^ New features and issues addressed in the Acrobat 7.0.5 Update (Acrobat and Adobe Reader for Windows and Mac OS). [2015-01-23]. (原始内容存档于2007-08-12). 
  64. ^ Getting Familiar with Adobe Reader > Understanding Preferences. [2009-04-22]. (原始内容存档于2021-02-24). 
  65. ^ 3D supported formats. Adobe. 2009-07-14 [2010-02-21]. (原始内容存档于2010-02-12). 
  66. ^ Acrobat 3D Developer Center. Adobe. [2010-02-21]. (原始内容存档于2010-06-29). 
  67. ^ Description of 2007 Microsoft Office Suite Service Pack 2 (SP2). Microsoft. [2009-05-09]. (原始内容存档于2009-04-29). 
  68. ^ www.globalgraphics.com/products/jaws_rip/. [2015-01-20]. (原始内容存档于2016-03-05). 
  69. ^ Adobe PDF Print Engine 2. [2015-01-20]. (原始内容存档于2013-08-22). 
  70. ^ Adobe Acrobat DC. acrobat.adobe.com. [2021-01-21]. (原始内容存档于2020-11-23). 
  71. ^ 存档副本. [2015-01-20]. (原始内容存档于2012-06-14). 
  72. ^ 存档副本. [2015-01-20]. (原始内容存档于2013-01-30). 
  73. ^ Harlequin MultiRIP. [2014-03-02]. (原始内容存档于2014-02-09). 
  74. ^ Press-Ready PDF Files Archive.is存档,存档日期2009-03-17 "For anyone interested in having their graphic project commercially printed directly from digital files or PDFs." (last checked on 2009-02-10).
  75. ^ On 2014-04-02, a note dated 2009-02-10 referred to Current FSF High Priority Free Software Projects页面存档备份,存于网际网路档案馆) as a source. Content of the latter page, however, changes over time.
  76. ^ GNUpdf contributors. Goals and Motivations. gnupdf.org. GNUpdf. 2007-11-28 [2014-04-02]. (原始内容存档于2014-07-04). 
  77. ^ Lee, Matt. GNU PDF project leaves FSF High Priority Projects list; mission complete!. fsf.org. Free Software Foundation. 2011-10-06 [2014-04-02]. (原始内容存档于2014-12-28). 
  78. ^ Poppler homepage页面存档备份,存于网际网路档案馆) "Poppler is a PDF rendering library based on the xpdf-3.0 code base." (last checked on 2009-02-10)
  79. ^ Xpdf license Archive.is存档,存档日期2013-04-14 "Xpdf is licensed under the GNU General Public License (GPL), version 2 or 3." (last checked on 2012-09-23).
  80. ^ The Apache PDFBox project页面存档备份,存于网际网路档案馆) . Retrieved 2009-09-19.
  81. ^ Introducing PDFKit on iOS - WWDC 2017 - Videos. Apple Developer. [2021-01-21]. (原始内容存档于2020-10-31) (英语). 

参见

外部连结

#