PDF

便携式文档格式
Adobe PDF图标
文件名扩展名.pdf
互联网媒体类型
  • application/pdf,
  • application/x-pdf
  • application/x-bzpdf
  • application/x-gzpdf
类型代码PDF (包括一个尾随空间)
统一类型标识符(UTI)com.adobe.pdf
魔术数字%PDF
由开发Adobe Inc. (1991-2008)
ISO (2008-)
初始发行1993年6月15日
最新发布
2.0
扩展到pdf/apdf/epdf/uapdf/vtpdf/x
标准ISO 32000-2
打开格式是的
网站iso.org/standard/75839.html

便携式文档格式PDF ),标准化为ISO 32000 ,是Adobe在1992年开发的文件格式,以与应用程序软件硬件操作系统无关的方式介绍文档,包括文本格式和图像。基于PostScript语言,每个PDF文件都封装了固定的平面文档的完整描述,包括文本,字体矢量图形栅格图像和其他所需的信息。 PDF的根源是Adobe联合创始人John Warnock于1991年发起的“ Camelot Project”。PDF在2008年被标准化为ISO 32000。最后一个版本AS ISO 32000-2:2020年于2020年12月出版。

PDF文件除了平面文本和图形外,可能包含各种内容数据格式。 PDF规范还提供了加密和数字签名,文件附件和元数据,以启用需要这些功能的工作流程

历史

Adobe Systems使PDF规范在1993年免费提供。在早期,PDF主要在桌面出版工作流中流行,并与其他几种格式竞争,包括DJVU ,Envoy, Envoy ,Common Ground Digital Paper,Farallon Replica,Farallon Replica甚至Adobe自己的Postscript格式。

PDF是由Adobe控制的专有格式,直到2008年7月1日作为公开标准发布,并由国际标准化组织( ISO 32000-1:2008)发布,当时规范的时间控制传给了ISO委员会志愿行业专家。 2008年,Adobe发布了ISO 32000-1的公共专利许可证,授予对制造,使用,出售和分发符合PDF的实施所需的所有Adobe拥有的所有专利的免版税权利。

PDF 1.7,第六版的PDF规范,该规范成为ISO 32000-1,包括一些仅由Adobe定义的专有技术,例如Adobe XML Forms Architecture (XFA)和Acrobat的Javascript扩展,这些技术由ISO 32000-1引用为ISO 32000-1规范性和不可或缺的ISO 32000-1规范的实施不可或缺。这些专有技术未标准化,其规范仅在Adobe的网站上发布。其中许多人不受PDF的流行第三方实现的支持。

ISO于2017年发布了ISO 32000-2,可供购买,以取代Adobe提供的免费规范。在2020年12月,发布了第二版PDF 2.0,ISO 32000-2:2020,发布了对规范参考的澄清,更正和关键更新(ISO 32000-2不包括任何作为规范性参考的专有技术) 。 2023年4月,PDF协会使ISO 32000-2免费下载。

技术细节

PDF文件通常是向量图形,文本和位图图形的组合。 PDF中内容的基本类型是:

  • 排版文本存储为内容流(即,不用纯文本编码);
  • 插图和设计的矢量图形,包括形状和线条;
  • 照片和其他类型的图像的栅格图形
  • 文档中的多媒体对象。

在以后的PDF修订版中,PDF文档还可以支持链接(内部文档或网页),表单,JavaScript(最初可作为Acrobat 3.0的插件可用)或任何其他可以使用插件来处理的嵌入式内容。

PDF结合了三种技术:

  • Postscript页面描述编程语言的等效子集,但以声明形式,用于生成布局和图形。
  • 字体装饰/替换系统,允许字体随文档传输。
  • 一个结构化存储系统将这些元素和任何关联的内容捆绑到一个文件中,并在适当的情况下使用数据压缩

后记语言

PostScript页面描述语言解释器中运行以生成图像。它可以处理图形,并具有编程语言的标准功能,例如分支循环。 PDF是Postscript的一个子集,简化以删除此类流控制功能,而图形命令仍保留。

从历史上看,类似后录的PDF代码是从源PostScript文件(即可执行程序)生成的,并采用标准编译器技术(如循环展开内部和删除未使用的分支)等标准编译器技术,导致代码纯粹是声明性和静态的。然后将其包装到容器格式中,以及所有必要的依赖项,以进行正确的渲染(文档所指的外部文件,图形或字体)和压缩

作为文档格式,PDF比Postscript具有多个优点:

  • PDF仅包含静态声明的后记代码,可以作为数据处理,并且不需要完整的程序解释器编译器。这避免了具有更高复杂性水平的发动机的复杂性和安全风险。
  • Display PostScript一样,由于版本1.4 PDF版本支持透明图形,而标准PostScript则不支持。
  • PDF强制执行页面代码不会影响任何其他页面的规则。也强烈建议将该规则用于PostScript代码,但必须明确地实现,因为PostScript是一种完整的编程语言,可以具有更大的灵活性,并且不仅限于页面和文档的概念。
  • 文件本身中包含渲染所需的所有数据,从而提高可移植性。

它的缺点是:

  • 灵活性丧失,并限制单例。
  • (有时甚至更大的尺寸)。尽管对于微不足道的重复含量,但通过压缩来减轻这一点。 (总的来说,与位图图像相比,它仍然小数量级。)

PDF自V1.6以来支持交互式3D文档的嵌入:3D图纸可以使用U3DPRC以及各种其他数据格式嵌入。

文件格式

PDF文件是使用ASCII字符组织的,除了某些可能具有二进制内容的元素。该文件以包含魔术数字(作为可读字符串)和格式的标题开始,例如%PDF-1.7。格式是cos(“轮毂”对象结构)格式的子集。 cos树文件主要由对象组成,其中有九种类型:

  • 布尔值,代表错误
  • 实数
  • 整数
  • 字符串,封闭在括号内((...))或在单角括号内表示为十六进制(<...>)。字符串可能包含8位字符。
  • 名称,从前向斜线开始(/)
  • 阵列,在方括号内封闭的对象的订购集合([...])
  • 词典,集合的对象的集合,由双角括号内包含的名称索引(<<...>>)
  • 通常包含大量可选压缩的二进制数据,之前是字典,并在streamendstream关键字。
  • 对象

使用具有百分比的8位字符的评论(评论)(%)可以插入。

对象可以直接(嵌入在另一个对像中)或间接。间接对象​​编号为对象号和一个生成号,并在objendobj关键字如果驻留在文档根中。从PDF版本1.5开始,间接对象(其他流)也可能位于称为对象流的特殊流中(标记为/Type /ObjStm)。该技术使非流对象可以将标准流滤波器应用于它们,减少具有大量小间接对象的文件的大小,并且对于标记的PDF特别有用。对象流不支持指定对象的生成号码(除0)。

一个索引表,也称为交叉引用表,位于文件末端附近,并从文件的开始时给出每个间接对象的字节偏移。该设计允许有效地随机访问文件中的对象,还可以在不重写整个文件的情况下进行小更改(增量更新)。在PDF版本1.5之前,该表将始终采用特殊的ASCII格式,用xref关键字,并遵循由间接对象组成的主体。 1.5版引入了可选的交叉引用流,该流具有标准流对象的形式,可能在应用过滤器的情况下。可以使用此类流代替ASCII交叉引用表,并以二进制格式包含偏移和其他信息。该格式灵活,因为它允许整数宽度规范(使用/W阵列),因此,例如,不超过64 KIB的文档可能仅专用于对象偏移的2个字节。

在PDF文件的末尾是一个页脚,其中包含

  • startxref关键字,然后偏移到交叉引用表的开始(从xref关键字)或交叉引用流对象,然后是
  • %%EOF文件结束标记。

如果未使用交叉引用流,则页脚在trailer关键字之后是字典,其中包含否则将包含在交叉引用流对像中的信息:

  • 对树结构的根对象的引用,也称为目录/Root)
  • 交叉参考表中间接对象的计数(/Size)
  • 其他可选信息

在每个页面中,都有一个或多个内容流来描述页面上绘制的文本,向量和图像。内容流是基于堆栈的,类似于Postscript。

Acrobat PDF页面的最大尺寸叠加在欧洲地图上。

PDF文件有两个布局:非线性化(不是“优化”)和线性化(“优化”)。非线性PDF文件可能比线性同行小,尽管它们的访问速度较慢,因为组装文档页面所需的部分数据散布在整个PDF文件中。线性化的PDF文件(也称为“优化”或“ Web优化” PDF文件)的构建方式是使它们能够在Web浏览器插件中读取的方式,而无需等待整个文件下载,因为第一页所需的所有对象显示在文件开始时最佳组织。可以使用Adobe Acrobat软件或QPDF优化PDF文件。

页面尺寸不受格式本身的限制。但是,Adobe Acrobat在2 (145,161公里2 )中施加了1500万乘1500万英寸,即225万亿英寸。

成像模型

PDF中图形表示的基本设计与PostScript非常相似,除了使用透明度,PDF 1.4中添加了透明度。

PDF图形使用独立于设备的笛卡尔坐标系来描述页面的表面。 PDF页面描述可以使用矩阵扩展旋转偏斜图形元素。 PDF中的一个关键概念是图形状态,它是图形参数的集合,可以通过页面描述更改,保存和恢复。 PDF具有(截至2.0版)25个图形状态属性,其中一些最重要的是:

向量图形

与PostScript一样,PDF中的向量图形是用路径构建的。路径通常由线条和立方贝齐尔曲线组成,但也可以从文本的轮廓构造。与PostScript不同,PDF不允许单个路径与线条和曲线混合文本大纲。路径可以抚摸,填充,填充,然后抚摸或用于剪裁。笔触和填充物可以使用图形状态中设置的任何颜色,包括图案。 PDF支持几种类型的模式。最简单的是瓷砖图案,其中指定了一件艺术品的反复绘制。这可能是彩色的平铺图案,带有图案对像中指定的颜色,或一个未颜色的瓷砖图案,它可以在绘制图案的时间上为颜色规范辩护。从PDF 1.3开始,还有一个阴影模式,它绘制连续变化的颜色。有七种类型的阴影模式,最简单的是轴向阴影(类型2)和径向阴影(类型3)。

栅格图像

PDF中的栅格图像(称为Image Xobjects )由带有关联流的字典表示。词典描述了图像的属性,该流包含图像数据。 (较少情况下,小栅格图像可以直接嵌入页面描述中作为内联图像。)通常将图像用于压缩目的。 PDF支持的图像过滤器包括以下通用过滤器:

  • ASCII85代码,用于将流放入7位ASCII的过滤器,
  • ASCIIHEXDECODE ,类似于ASCII85代码,但不太紧凑,
  • FletatedEcode ,一种基于定义的放气算法的常用过滤器RFC 1951 (在GZIPPNGZIP文件格式中也使用Deflate);在PDF 1.2中引入;它可以使用两组预测函数之一,以进行更紧凑的Zlib/Deflate压缩:从TIFF 6.0规范和PRNG规范( RFC 2083 ),TIFF 6.0规范和预测变量(过滤器)中进行预测2
  • lzwdecode ,基于LZW压缩的过滤器;它可以使用两组预测函数之一来进行更紧凑的LZW压缩:从TIFF 6.0规范和预测因子(滤波器)中的预测指标2,来自PNG规范,
  • RunlengthDecode ,一种使用Run-Length编码算法和图像特异性过滤器的流动数据流的简单压缩方法,
  • DCTDecode ,一种基于JPEG标准的有损滤波器,
  • CCITTFAXDECODE ,一种基于3组或4 CCITT (ITU-T)的无损BI级黑色/白色)过滤器
  • JBIG2-DECODE是基于JBIG2标准的有损或无损的BI级(黑色/白色)滤波器,在PDF 1.4中引入,并且
  • JPXDecode是基于JPEG 2000标准的有损或无损过滤器,在PDF 1.5中引入。

通常,PDF中的所有图像内容都嵌入到文件中。但是PDF允许通过使用外部流替代图像将图像数据存储在外部文件中。 PDF的标准化子集,包括PDF/APDF/X ,禁止这些功能。

文字

PDF中的文本由页面内容流中的文本元素表示。文本元素指定应在某些位置绘制字符。使用所选字体资源编码指定字符。

PDF中的字体对像是数字字体的描述。它可以描述字体的特性,也可以包括嵌入式字体文件。后一种情况称为嵌入式字体,而前者被称为unbed式字体。可以嵌入的字体文件基于广泛使用的标准数字字体格式:类型1 (及其压缩变体CFF), TRUETYPE和(从PDF 1.6开始) Opentype 。另外,PDF支持PDF图形运算符描述字体组件的类型3变体。

14个字体(称为标准14个字体)在PDF文档中具有特殊意义:

这些字体有时被称为碱基14个字体。这些字体或具有相同指标的合适替代字体应在大多数PDF阅读器中可用,但是不能保证在读取器中可用,并且只有在系统安装它们时才可以正确显示。如果字体未嵌入PDF,则可以取代字体。

在文本字符串中,使用字符代码(整数)显示字符,使用编码将其映射到当前字体中的字形。有几种预定义的编码,包括WinansiMacroman以及许多用于东亚语言的编码,并且字体可以具有自己的内置编码。 (尽管Winansi和Macroman编码源自WindowsMacintosh操作系统的历史属性,但使用这些编码的字体在任何平台上同样均能很好地工作。)PDF可以指定使用预定义的编码,该字体的内置编码或提供。查找与预定义或内置编码的差异表(不建议使用TrueType字体)。 PDF中的编码机制是为1型字体设计的,将其应用于TrueType字体的规则很复杂。

对于具有非标准字形的大字体或字体,使用了特殊的编码Identity-H (用于水平写作)和Identity-V (用于垂直)。使用这样的字体,如果要保留有关字符的语义信息,则有必要提供Tounicode表。

在没有光学字符识别(OCR)识别的文本的情况下扫描到PDF的文本文档是图像,没有字体或文本属性。

透明度

PDF的原始成像模型是不透明的,类似于PostScript,在该页面上绘制的每个对像都完全替换了以前在同一位置标记的任何对象。在PDF 1.4中,扩展了成像模型以允许透明度。使用透明度时,新对象与先前标记的对象相互作用以产生混合效果。通过新的扩展名为PDF 1.3和更早规格的产品中忽略了新扩展的透明度。结果,较旧的观众可以接受使用少量透明度的文件,但是较旧的观众可能会错误地查看透明度的广泛使用的文件。

透明度扩展基于透明组混合模式形状α的关键概念。该模型与Adobe Illustrator版本9的功能密切相符。混合模式基于当时Adobe Photoshop使用的模式。当发布PDF 1.4规范时,Adobe将计算混合模式的计算公式保密。从那以后,他们出版了。

PDF规范中透明组的概念与Adobe Illustrator等应用程序中的“组”或“层”的现有概念无关。这些分组反映了编辑这些对象时有意义的对象之间的逻辑关系,但它们不是成像模型的一部分。

附加功能

逻辑结构和可访问性

“标记” PDF(请参阅ISO 32000中的第14.8条)包括文档结构和语义信息,以启用可靠的文本提取和可访问性。从技术上讲,标记的PDF是对构建在PDF 1.3中介绍的逻辑结构框架上的格式的风格化使用。标记的PDF定义了一组标准的结构类型和属性,这些类型允许为其他目的提取和重复使用页面内容(文本,图形和图像)。

在PDF文件仅用于打印的情况下,不需要标记的PDF。由于该功能是可选的,并且由于ISO 32000-1的标记PDF规则相对模糊,因此在包括辅助技术(AT)在内的消耗设备中对标记的PDF的支持截至2021年不均匀。但是,ISO 32000-2,但是,包括对标记的PDF进行改进的讨论,预计将有助于进一步采用。

2012年首次发布了专门针对可访问性PDF/UA的PDF的ISO标准子集。

可选内容组(层)

随着PDF版本1.5(2003)的引入,层的概念。层,更正式地称为可选内容组(OCG),请参阅PDF文档中的内容部分,可以通过文档作者或查看者选择性地查看或隐藏。此功能可用于CAD图,分层艺术品,地图,多语言文档等。

基本上,它由添加到文档root中的可选内容属性组成。该字典包含一个可选内容组(OCG)的数组,每个词都描述了一组信息,并且每个信息都可以单独显示或抑制,以及一组可选的内容配置词典,这些词典给出了状态(显示或抑制)给定OCG。

加密和签名

为了安全性,可以对PDF文件进行加密,在这种情况下,需要密码来查看或编辑内容。 PDF 2.0将256位AES加密定义为PDF 2.0文件的标准。 PDF参考还定义了第三方可以定义自己的PDF加密系统的方式。

可以通过数字签名PDF文件,以提供安全的身份验证; ISO 32000-2提供了有关在PDF中实现数字签名的完整详细信息。

PDF文件还可能包含嵌入式的DRM限制,这些限制提供了进一步的控件,以限制复制,编辑或打印。这些限制取决于读者软件以遵守它们,因此它们提供的安全性是有限的。

PDF提供的标准安全性由两种不同的方法和两个不同的密码组成:一个用户密码,该密码加密文件并防止打开,以及一个所有者密码,该密码指定了即使解密文档也应限制的操作,可以包括从文档中修改,打印或复制文本和图形,或添加或修改文本注释和Acroform字段。用户密码对文件进行加密,而所有者密码不依靠客户端软件来尊重这些限制。可以通过软件轻松删除所有者密码,包括一些免费的在线服务。因此,文档作者放置在PDF文档上的使用限制并不安全,一旦文件分发,就无法确保。使用Adobe Acrobat软件应用此类限制来创建或编辑PDF文件时会显示此警告。

即使没有删除密码,大多数免费软件或开源PDF读取器都忽略了“保护”的权限,并允许用户打印或制作文本摘录的副本,就好像文档不受密码保护的限制一样。

从PDF 1.5开始,使用使用权(UR)签名来启用特定PDF Viewer应用程序中默认情况下不可用的其他交互式功能。该签名用于验证权限是由真正的授予机构授予的权限。例如,它可用于允许用户:

  • 为了保存PDF文档以及修改的表单或注释数据
  • 以FDF,XFDF和文本(CSV/TSV)格式导入形式的数据文件
  • 以FDF和XFDF格式导出表格数据文件
  • 提交表单数据
  • 从命名的页面模板实例化新页面
  • 数字签名应用于现有的数字签名表单字段
  • 创建,删除,修改,复制,导入和导出注释

例如,Adobe Systems使用公开密码学授予权限,以启用Adobe阅读器的其他功能。 Adobe Reader验证签名是否使用Adobe授权证书授权的证书。任何PDF应用程序都可以用于自身目的。

在包括接收器的非修补系统在内的特定情况下,在签名者签署文档后,发件人可以操纵数字签名文档SEE的接收器。

PAINPDF高级电子签名)是对PDF和ISO 32000-1的一组限制和扩展,使其适用于高级电子签名ETSI以TS 102 778出版。

文件附件

PDF文件可以具有文件附件,处理器可以访问并打开或保存到本地文件系统。

元数据

PDF文件可以包含两种类型的元数据。第一个是文档信息词典,一组密钥/值字段,例如作者,标题,主题,创建和更新日期。这是可选的,并从Info在文件的预告片中键。定义了一小部分字段,如果需要,可以使用其他文本值扩展。此方法在PDF 2.0中弃用。

在PDF 1.4中,使用可扩展的元数据平台(XMP)添加了元数据流的支持,以添加基于XML标准的扩展元数据,以其他文件格式使用。 PDF 2.0允许将元数据连接到文档中的任何对象,例如有关嵌入式插图,字体和图像的信息,以及整个文档(附加到文档目录),使用扩展模式。

PDF文档还可以包含显示设置,包括查看器首选项对像中的页面显示布局和缩放级别。打开文档时,Adobe Reader使用这些设置来覆盖用户的默认设置。免费的Adobe读取器无法删除这些设置。

可访问性

可以专门创建PDF文件,以便为残疾人访问。截至2014年使用的PDF文件格式可以包括标签,文本等价,字幕,音频说明等。某些软件可以自动生成标记的PDF ,但是默认情况下并不总是启用此功能。领先的屏幕读取器,包括下颌窗户,HAL和Kurzweil 1000和3000可以读取标记的PDF。此外,可以重新流动标记的PDF并放大视觉障碍的读者。将标签添加到较旧的PDF和由扫描文档生成的标签可能会带来一些挑战。

PDF可访问性的重大挑战之一是,PDF文档具有三种不同的观点,根据文档的创建,这可能是不一致的。这三个视图是(i)物理视图,(ii)标签视图,以及(iii)内容视图。显示和打印物理视图(大多数人认为PDF文档)。标签视图是屏幕读取器和其他辅助技术用于为残疾用户提供高质量导航和阅读经验的方法。内容视图基于PDF内容流中对象的物理顺序,并且可以通过不完全支持标签视图的软件显示,例如Adobe读取器中的Reflow功能。

PDF/UA是基于ISO 32000-1的国际访问PDF标准,于2012年首次出版为ISO 14289-1,并为可访问的PDF技术建立了规范性语言。

多媒体

Rich Media PDF是一个PDF文件,其中包括可以嵌入或链接到文件中的交互式内容。它可以包含图像,音频,视频内容或按钮。例如,如果交互式PDF是用于电子商务业务的数字目录,则可以在PDF页面上列出产品,并且可以在网站和按钮直接从文档订购的图像和链接中添加产品。

形式

交互式表单是将表单添加到PDF文件格式的机制。 PDF目前支持两种不同的数据和PDF表单的方法。如今,这两种格式在PDF规范中共存:

  • Acroforms(也称为Acrobat形式),在PDF 1.2格式规范中引入,并包含在所有以后的PDF规范中。
  • XML形式的体系结构(XFA)表单,在PDF 1.5格式规范中介绍。 Adobe XFA形式与Acroforms不兼容。用PDF 2.0将XFA从PDF中弃用。

在PDF 1.2格式中引入了Acroforms。 Acroforms允许使用对象(例如文本框无线电按钮)和一些代码(例如JavaScript)。除了标准的PDF操作类型,交互式形式(Acroforms)支持提交,重置和导入数据。 “提交”操作将所选交互式表单字段的名称和值传输到指定的统一资源定位器(URL)。交互式表单字段名称和值可以以以下任何格式提交(取决于操作的exportformat,submitpdf和XFDF标志的设置):

HTML形式格式
html 4.01规格以来PDF 1.5; HTML 2.0以来1.2
形成数据格式(FDF)
基于PDF,使用相同的语法,并且具有基本相同的文件结构,但是比PDF要简单得多,因为FDF文档的主体仅由一个必需的对象组成。 PDF规范中定义了表单数据格式(因为PDF 1.2)。将表单数据提交给服务器,接收响应并将其纳入交互式表单时,可以使用表单数据格式。它也可以用来将表单数据导出到可以将其导入到相应的PDF交互式形式中的独立文件。 FDF最初是在1996年定义为ISO 32000-2:2017的一部分。
XML形成数据格式(XFDF)
(外部XML形式的数据格式规范,版本2.0;自PDF 1.5以来得到支持;它替换了PDF 1.4中定义的“ XML”表单提交格式)XML版本的表单数据格式的XML版本,但XFDF仅实现包含FDF的表格和表格和集合的子集注释。 FDF字典中的某些条目没有XFDF等效物,例如状态,编码,JavaScript,Page's键,EmbeddedFDFS,差异和目标。此外,XFDF不允许基于给定数据的新页面产卵或添加。就像使用FDF文件时可以做的那样。 XFDF规范在PDF 1.5规范中(以及以后版本)中引用(但不包括)。它以XML形式的数据格式规范分别描述。 PDF 1.4规范允许以XML格式提交表格,但这被PDF 1.5规范中的XFDF格式提交所取代。 XFDF符合XML标准。 XFDF可以与FDF相同的方式使用;例如,表单数据已提交到服务器,进行了修改,然后发送回去,然后以交互式形式导入新表单数据。它也可以用来将表单数据导出到可以将其导入到相应的PDF交互式形式中的独立文件。截至2019年8月,XFDF 3.0是正式名称ISO 19444-1:2019的ISO/IEC标准 - 文档管理 - XML形式数据格式 - 第1部分:使用ISO 32000-2(XFDF 3.0) 。该标准是ISO 32000-2的规范性参考。
PDF

可以提交整个文档,而不是单个字段和值,如PDF 1.4所定义的那样。

AcroForms可以将表单值保持在包含键值对的外部独立文件中。外部文件可以使用表单数据格式(FDF)和XML表单数据格式(XFDF)文件。使用权(UR)签名定义了FDF,XFDF和TEXT( CSV / TSV )格式的导入表单数据文件的权利,并以FDF和XFDF格式导出表单数据文件。

在PDF 1.5中,Adobe Systems引入了形式的专有格式。 Adobe XML形成体系结构(XFA)。 Adobe XFA表单与ISO 32000的Acroforms功能不兼容,并且大多数PDF处理器不处理XFA内容。 XFA规范从ISO 32000-1/PDF 1.7作为外部专有规范引用,并完全将ISO 32000-2(PDF 2.0)从PDF中删除。

许可

任何人都可以创建可以读取和写入PDF文件的应用程序,而不必向Adobe Systems支付特许权使用费; Adobe拥有PDF的专利,但获得了符合其PDF规范的软件的免版税使用许可。

安全

内容更改

2019年11月, Ruhr University Bochum和Hackmanit GmbH的研究人员发表了对数字签名的PDF的攻击。他们展示了如何通过滥用实现缺陷来更改签名的PDF中的可见内容,而不会在22个桌面PDF观众中21个签名和8个在线验证服务中的6个更改签名。在同一会议上,他们还展示了如何渗透PDF中加密内容的纯文本。在2021年,他们展示了对PDF的新的所谓影子攻击,这些攻击滥用了规范中提供的功能的灵活性。 JensMüller提出了PDF中有关拒绝服务信息披露数据操纵任意代码执行攻击的安全问题的概述。

恶意软件漏洞

PDF文件可以被病毒,特洛伊木马和其他恶意软件感染。他们可以具有隐藏的JavaScript代码,该代码可能会利用PDF中的漏洞,当隐藏隐藏它们的文件打开时执行的隐藏对象,并且较不常见的是,恶意PDF可以启动恶意软件。

携带病毒的PDF附件于2001年首次发现。该病毒(名为Outlook.pdf虫桃子)使用Microsoft Outlook将其发送为附件Adobe PDF文件。它被Adobe Acrobat激活,但没有被Acrobat Reader激活。

不时地在各种版本的Adobe阅读器中发现了新的漏洞,促使该公司发布安全修复程序。其他PDF读者也很容易受到影响。一个加重的因素是,如果网页具有嵌入式PDF文件,可以将PDF读取器配置为自动启动,从而提供了攻击的向量。如果恶意网页包含一个受感染的PDF文件,该文件利用PDF读取器中的漏洞,即使浏览器安全也可能会损害系统。其中一些漏洞是PDF标准的结果,允许使用JavaScript脚本脚本PDF文档。在PDF阅读器中禁用JavaScript执行可以帮助减轻此类的利用,尽管它不能防止PDF查看软件其他部分的利用。安全专家说,JavaScript对于PDF阅读器并不是必需的,并且禁用JavaScript所带来的安全益处超过了引起的任何兼容性问题。避免PDF文件利用的一种方法是在查看之前将本地或Web服务转换为另一种格式。

2010年3月30日,安全研究员迪迪尔·史蒂文斯(Didier Stevens)报告了Adobe Reader和Foxit Reader的利用,如果用户允许在询问时启动它,则可以使用恶意可执行。

软体

观众和编辑

许多PDF观看者都可以从各种来源免费提供。通常可以购买操作和编辑PDF文件的程序。

有许多用于创建PDF的软件选项,包括MACOSiOS和大多数Linux发行版中内置的PDF打印功能。许多文档处理软件,包括LibreofficeMicrosoft Office 2007 (如果已更新为SP2 ),然后WordPerfect 9和Scribus可以以PDF格式导出文档。有许多用于Microsoft Windows的PDF打印驱动程序, PDFTEX排版系统, DocBook PDF工具,围绕GhostscriptAdobe Acrobat本身开发的应用以及Adobe IndesignAdobe Framemaker ,Adobe Illustrator,Adobe Illustrator,Adobe Photoshop,允许“ PDF Printer”允许“ PDF Printer”要设置,当选择时,将输出发送到PDF文件而不是物理打印机。 Google的在线办公室套件Google Docs允许上传并保存到PDF。一些Web应用程序提供免费的PDF编辑和注释工具。

自由软件基金会正在“开发一套免费,高质量且功能齐全的库和程序集,这些库和程序将PDF文件格式和相关技术实施为ISO 32000标准的技术”,这是他们的高优先级项目之一。但是,在2011年,由于流行乐库的成熟,GNU PDF项目被从“高优先级项目”列表中删除,该库的成熟在诸如EvinceGNOME桌面环境之类的应用中所享有更大的用途。 Poppler基于XPDF代码库。 PDF软件列表中列出的也有商业开发库。

Apache Software FoundationApache PDFBox项目是一个开源Java库,该图书馆已获得Apache许可证的许可,用于使用PDF文档。

印刷

栅格图像处理器(RIPS)用于将PDF文件转换为适合于打印机,数字生产压机和Prepress在称为栅格化的过程中的纸张和其他媒体上的栅格格式。能够直接处理PDF的撕裂包括Adobe Systems和Jaws的Adobe PDF打印引擎以及全球图形Harlequin Rip

1993年,来自全球图形的JAWS栅格图像处理器成为第一个本地解释PDF而未转换为其他格式的运输prepress RIP。该公司于1997年以相同的功能发布了对丑角RIP的升级。

Agfa-Gevaert于1997年介绍并运送了基于PDF的第一个基于PDF的Prefress工作流程系统。

许多商业偏移打印机已经接受了新闻准备的PDF文件作为打印源,特别是PDF/X-1A子集和相同的变体。提交新闻准备的PDF文件是替代接收收集到的本机工作文件的问题。

2006年,PDF在开源开发实验室印刷峰会上被广泛接受为标准打印作业格式。普通的Unix打印系统和桌面应用程序(例如Gnome, KDEFirefoxThunderbird ,Libreoffice和OpenOffice)将其作为打印作业格式支持,已切换到PDF中发出打印作业。

一些台式打印机还支持直接PDF打印,可以在没有外部帮助的情况下解释PDF数据。

本机显示模型

PDF被选为Mac OS X的“本机” Metafile格式,取代了较早的经典Mac OSPICT格式。石英图形层的成像模型基于显示PostScript和PDF的模型,导致暱称显示PDF 。预览应用程序可以显示PDF文件,以及Safari Web浏览器的版本2.0和后期。 PDF的系统级支持允许Mac OS X应用程序自动创建PDF文档,前提是它们支持OS标准打印体系结构。然后根据文件标头以PDF 1.3格式导出文件。在Mac OS X版本10.0至10.3下进行屏幕截图时,该图像也被捕获为PDF;以后版本将屏幕捕获作为PNG文件保存,尽管可以根据需要将此行为设置回PDF。

注解

Adobe Acrobat是专有软件的一个示例,它允许用户注释,突出显示和添加注释已创建的PDF文件。 PDFEDIT是一个免费软件的UNIX应用程序(根据GNU通用公共许可证)。可用于Microsoft Windows,MacOS和Linux的免费软件Foxit读取器允许注释文档。 Tracker Software的PDF-Xchange查看器允许在其免费软件替代方案中不受限制地标记和标记。 Apple的MacOS集成的PDF查看器Preview也可以像开源软件一样启用注释,后者支持与LATEX ,SYNCTEX和PDFSYNC的交互,并与Bibdesk参考管理软件进行集成。免费软件QIQQA可以创建一个注释报告,该报告总结了人们在其PDF库中所做的所有注释和注释。文本验证工具导出文档中的差异作为注释和标记。

还有一些网络注释系统支持PDF和其他文档格式的注释。如果预计PDF具有纸质文档的所有功能,则需要墨水注释。

备择方案

Windows Vista以来,开放的XML纸张规范是一种竞争格式,既用作页面描述语言,也用作Microsoft Windows的本机打印式剥离器格式。

混合对象:文档内容体系结构是一种竞争格式。 MO:DCA-P是高级功能表示的一部分。

也可以看看