可移植文档格式

历史

Adobe Systems在1993年免费提供了PDF规范，当时与PDF一起竞逐跨平台文档格式的，还包括DjVu（仍在开发中）、Envoy、Common Ground Digital Paper、Farallon Replica 及 Adobe 自己本身的PostScript（.ps）格式。在万维网及HTML文本尚未兴起时，PDF在桌面出版工作流技术当中很受欢迎。PDF起初为Adobe所控制的专有格式，直到2008年7月1日才被官方以开放标准发行，并由国际标准化组织以 ISO 32000-1:2008 发布。 此后，标准的控制权便移转到了产业专家志愿者所组的ISO委员会底下。2008年，Adobe在 ISO 32000-1 发布了公共专利许可，对于制做、使用、销售及发布PDF兼容的应用所需的专利，皆赋予买断式授权。
PDF 1.7 含有一些Adobe所定义的专有技术，如Adobe XML表单结构（XFA）和JavaScript中对Acrobat的扩展。这些技术被ISO 32000-1 引用为对于该规范之完整实现不可或缺且规范性的，但是它们并没有被标准化，其规格也只有发布在Adobe的网站上。这些技术大部分也没有被热门的PDF第三方实现所支持。
2017年7月28日，发布了ISO 32000-2:2017（PDF 2.0）。ISO 32000-2 不将任何专有技术当作是规范性引用文件。

矢量图

PDF中的矢量图如同在PostScript当中一样，是由路径组成的。路径通常由直线和多项的贝兹曲线组成，但也可以从文本的外廓构建。不同于PostScript，PDF不允许带直线和曲线的单一路径去组合文本外廓。路径可被描绘、填充或用于剪取。描绘和填充可用任意图形状态中的色彩集，包括式样。
PDF支持多种调色板类型。最简单的是瓷砖式样，其中艺术作品的一部分被指定以被重复地绘制。这可能是彩色瓷砖式样，带有在式样对象中的指定的颜色，或是延迟色别编码到式样已绘制时候的没有颜色的瓷砖式样。从PDF 1.3开始还有了底纹式样, 连续绘制不同的颜色。七种底纹式样中最简单的是轴向底纹（Type 2）和径向底纹（Type 3）。

文本

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

字体

PDF中的字体对象是对数字字体的描述。可能是字体中的字符的描述，或者是包含嵌入的字体文件。后者叫嵌入字体，前者叫非嵌入字体。所嵌入的字体文件基于广泛使用的标准数字字体文件：Type 1（及其压缩版变种CFF）、TrueType和（自PDF 1.6版起）OpenType。另外PDF支持由PDF图形处理器描述的字体组件中的Type 3变种。

编码

文本字符串中，字符用以编码映射字形于当前字体的字符代码（整数）显示。预定义的编码有多种，包括WinAnsi、MacRoman，以及大量东亚语言编码，而且字体可以有自己的编码。（即使WinAnsi和MacRoman编码取自Windows和Macintosh操作系统中历史上的专有编码，用这类编码的内容在任何平台上都运行的好。）PDF可以指定可以使用的预定义的编码、字体内置编码，或者提供预定义或内置编码的查询表（不对TrueType字体推荐）。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保密。此后它们被公布。
PDF规格中透明度组的概念独立于Adobe Illustrator之类的应用中已有的“组”或“层”的概念。那些反映对象之上的逻辑关系的分组在编辑那些对象的时候有意义，但不是图像模型的一部分。

Adobe XML表单架构（XFA）

PDF 1.5格式中，Adobe Systems引入了新的、专有的表单格式，名为Adobe XML表单架构（XFA）。XFA 2.02引用在PDF 1.5规格（及以后的版本），但单独描述为《Adobe XML Forms Architecture (XFA) Specification》，有多个版本。XFA规格没有包括在ISO 32000-1 PDF 1.7并仅仅作为由Adobe创建的外部专有规格引用。在ISO 32000-2（PDF 2.0）当中被弃用。
Adobe XFA表单不与AcroForms兼容。Adobe Reader包含使用XFA表单的“禁用特性”，仅在打开只来自Adobe的可行的技术创建的PDF文档时激活。XFA Forms不兼容于Adobe Reader 6以前的版本。
XFA表单可创建或用作PDF文件或作为XDP（XML数据包）文件。PDF中XFA源的格式由XML数据包规格描述。XDP可能作为单独的文档，也可能在PDF文档的内部携带。XDP提供打包周边XML容器内部的表单组件的机制。XDP也可以打包一个PDF文件，伴随XML表单和模板数据。PDF可能包含XFA（在XDP格式中），XFA也可能包含PDF。在用于XFA表单XFA（XML表单架构）语法从一个应用移到另一个应用的时候，它们必须以XML数据包封装。
当PDF和XFA结合在一起，结果是任意页面中的XFA表单覆盖了PDF背景。这一架构有时被提作XFAF（XFA Foreground，XFA前景）。替代方法是直接在XFA（不用PDF，或者只用带有PDF标记的最小构造XFA的容器的“外挂PDF”，或用静态XFA表单的预渲染描述作为PDF）展开所有表单，包括样板文件。这有时被称为全XFA。
PDF 1.5开始，可变文本字段的文本内容，以及标记注解可能包含格式信息（样式信息）。这些富文本字符串是符合XML表单架构规格2.02（本身是XHTML 1.0规格的子集）定义的富文本惯例的XML文档，扩展了CSS2样式属性中受限的设置。PDF 1.6中，PDF支持XML表单架构（XFA）规格2.2定义的富文本元素和属性。PDF 1.7中，PDF支持XML表单架构（XFA）规格2.4定义的富文本元素和属性。
多数PDF处理器不处理XFA内容。生成外挂PDF的时候会被建议包含于PDF标记的一个简单的单页PDF图像显示警告（如：“为了查看本文档的全部内容，你需要新版PDF查看器”等。）能渲染XFA内容的PDF处理器应该不现实警示页面图像或者以动态表单内容迅速替换。带有一些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定义了一组标准结构类型及属性，允许页面内容（文本、图形和图片）之后被提取并再利用于其他用途。
当PDF文件仅供打印时，并不要求支持标签PDF。因为此一特色是非必须的，且 ISO 32000-1 对于标签PDF的规则相对模糊，所以在消费性设备当中，包括辅助技术（AT），标签PDF的支持参差不齐。
一个专门针对可读性、为ISO标准之子集的PDF规格：PDF/UA 于2012年首次发布。

安全和签名

一份PDF文件可能以用于验证的担保或者数字签名加密。
由Acrobat PDF提供的标准担保以两种不同的方法及两种不同的密码组成，用户密码，加密文件并阻止开启；所有者密码，指定即使文档被解密的时候应该被限制的操作，可以包括：打印、从文档复制文本和图像、修饰文档，或者添加或删除文本注释和AcroForm字段。用户密码（控制开启）加密文件并要求密码破解以去除，难度取决于密码长度及加密算法——它可能非常安全（假设好的密码及加密算法没有已知的攻击手法）。所有者密码（控制操作）不加密文件，相反取决于客户端软件以遵循这些限制，并且不安全。所有者密码可以被许多通常可用的PDF破解软件移除，包括一些自由的在线服务。由此，文档作者放在PDF文档中的使用限制不安全，而且不能在一旦文件被散布时保证；这一危险在使用Adobe Acrobat软件以创建或编辑PDF文件应用这类限制的时候显现出来。
即使没有移除密码，许多免费或开源PDF阅读器忽略权限“保护”并允许用户打印或者做文本摘要的复制，就像文档没被密码保护限制一样。
一些解决方案像Adobe的LiveCycle Rights Management更强化信息权利管理的方式，不仅能限制谁能打开文档，而且以标准的安全处理程序做不到的方式可靠的执行权限。

文件附件

PDF文件可以有文档级和页面级的文件附件，读者可访问并打开或存储于本地的文件系统。PDF附件可作为示例用pdftk加到已有的PDF文件。Adobe Reader提供对附件的支持，而且基于Poppler的阅读器如Evince或Okular也有对文档级附件的支持。

元数据

PDF文件可包含两种类型的元数据。第一种是文档信息字典，一套像作者、标题、主题、创建及更新日期的关键字/值字段。这存储于可选的文件尾部。有一小组字段是有定义的，而且如果有需要，可以用附加的文本字段扩充。
后来在PDF 1.4中，对元数据流的支持被加入，用可扩展元数据平台（XMP）来添加像在其他文件格式那样的基于XML标准的可扩展的元数据。这允许元数据附加到文档中的任何字符串流，诸如关于嵌入式插图的说明，以及整个文档（附加到文档目录），使用可扩展的纲要。

Mars

Adobe曾探索基于XML的下一代PDF，代号Mars。
Mars的图形元素的格式有时简单地描述为SVG，但根据2007年11月的0.8版草案规格（§3 Mars SVG Support）这一格式实际上仅仅是接近于SVG：它同时包含SVG新增和移除的部分，因此一般不可被标准SVG工具查看或创建：一些东西在SVG查看器和Mars查看器之间看起来明显不同。
Adobe Systems于2008年停止开发Mars。

扫描的文档

由扫描仪硬拷贝文档创建的PDF文件包含原始文本没有由相同的文档直接创建的PDF文件那样相同的架构。扫描的文档原本地包含了文档的图片，没有关于文本的信息。只要用户可以看到它只是另一个PDF文件，带有从其他任意地方来的不能区分的名称和扩展名；好的扫描仪或许会精确地视作与本地的PDF文件相同，即使是视觉上质量很差的文件，常常带有扭曲的页面，给出了其本性。然而，文件大小会明显不同，而且不能搜索文本。对于精确质量的扫描可以用带光学字符识别（OCR）的合适的软件识别文档中的文本，并嵌入文档中而使其可以检索，取决于OCR的准确性。

可读性

PDF文件可专门为让残疾人阅读而创建。截至2014年PDF文件格式在使用中可以包含标签（XML）、替换文本、标题、音频描述等。置标PDF在PDF/A-1a规格中被要求。一些软件可以自动生成置标PDF，但这个特性不被默认启用。常见的屏幕阅读器，包括JAWS、Window-Eyes、Hal和Kurzweil 1000及3000可以朗读置标PDF，就像Acrobat和Acrobat Reader后来的版本一样。此外，置标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激活。
随着时间推移，新的漏洞在Adobe Reader的多个版本被发现，促使企业发出安全性修复。其他PDF阅读器也容易受到影响。一个恶化的因素是PDF阅读器会被配置在网页嵌入PDF时候自动启动，为攻击带来了载体。如果恶意的网页包含一份利用PDF的漏洞感染的PDF文件，系统会无法抵抗，即使浏览器是安全的。其中一些漏洞是由于PDF标准允许PDF文档用JavaScript脚本指令的结果。在PDF阅读器中禁止执行JavaScript有助于缓解那些未来的漏洞，即使这不阻止PDF查看器其他部分的漏洞。安全专家称JavaScript对于PDF阅读器来说不是基本的，而且出于禁止JavaScript的安全保障胜过任何造成的兼容性问题。阻止PDF文件漏洞的一种方式是有本地或网络服务能在阅读前把文件转换成其他格式。
2010年3月30日安全专家Didier Stevens报告Adobe Reader和福昕阅读器有如果用户经询问允许启动时运行恶意可执行文件的漏洞。

使用限制和显示

PDF可能会被加密，以致查看或编辑内容时会要求输入密码。PDF参考书同时定义40位和128位加密，都运用RC4和MD5的复杂系统。PDF参考书还定义第三方可以制定他们自己的PDF加密系统的方式。
PDF文件或许还包含嵌入的DRM限制，提供限制复制、编辑或打印的进一步控制。复制、编辑或打印的限制取决于阅读软件遵循他们，因此他们提供的安全机制是有限的。
PDF参考书有面向最终用户概览的技术细节。就像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”。
Adobe通过LiveCycle安全服务器提供针对特定文档设置安全策略的方法。这可以包括要求用户认证并限制文档可被离线打开的时候可以被访问或者加载的时期。PDF文档一旦被绑定到策略服务器和指定策略，这一策略可以被所有者更改或撤销。这一策略控制文档，否则就是“在自然状态下”。每个文档打开或关闭事件也可以被策略服务器追踪。策略服务器可以由个人设置，或Adobe通过Adobe在线服务提供公共服务。和其他DRM形式一样，依附这些策略和限制有可能会，也有可能不会被阅读器软件执行。

默认的显示设置

PDF文档可以包含显示设置，包括页面显示输出和缩放级别。打开文档的时候Adobe Reader用这些设置去替换用户的默认设置。免费的Adobe Reader不能移除这类限制。

软件

PDF通常免费提供，而且许多版本可以从多个来源获得。
有许多软件选项用来创建PDF，包括内建于Mac OS X及多数Linux发行版、LibreOffice、Microsoft Office 2016、WordPerfect 9、Scribus许多适用于Microsoft Windows的PDF打印驱动、pdfTeX排版系统、DocBook PDF工具、围绕Ghostscript及Adobe Acrobat本身开发的应用以及Adobe FrameMaker的PDF排印功能。Google的在线办公包Google Docs也允许上传、保存为PDF。
光栅图像处理器（RIPs）用于转换PDF文件为位图格式以适应于成像在纸上及其他媒体的打印机、数字生产用印刷机以及一种被称为栅格化的进程中的印前。有直接处理PDF能力的RIP包括在出自Adobe Systems和Jaws的Adobe PDF排印引擎与出自Global Graphics的Harlequin RIP当中。

注释

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发布了一个有同样兼容性的更新。
爱克发-吉华1997年推介并出售Apogee，第一个基于PDF的印前工作流系统。
许多商业的胶印机接受递交发布就绪的PDF文件作为印刷来源，特别是PDF/X-1a子集和相同的变种。发布就绪的PDF文件的提交是对接收已收集本地文件工作的不确定性需求的替代。
PDF被选为Mac OS X的“本地”元文件格式，取代早期Mac OS的PICT格式。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标准的相关技术”。而在2011年，GNU PDF计划从“高优先级”列表中被移除，因为Poppler库的完善，激励了像Evince之类的应用与GNOME桌面环境的广泛应用。Poppler基于Xpdf代码。PDF软件列表亦列出可用的商业开发用软件库。
Apache软件基金会的Apache PDFBox计划是一款用于处理PDF文档的开放源代码Java库。PDFBox以Apache许可证授权发布。