PDF 格式说明
什么是 PDF 文件?
可移植文档格式 (PDF) 是 Adob e 在 1990 年代创建的一种文档。这种文件格式的目的是引入一种标准,以独立于应用软件、硬件和操作系统的格式表示文档和其他参考资料。PDF 文件格式具有完全包含文本、图像、超链接、表单字段、富媒体、数字签名、附件、元数据、地理空间要素和 3D 对象等信息的功能,这些信息可以成为源文档的一部分。
在大多数情况下,现有文档将转换为 PDF,而不是从头开始创建新的 PDF。但这并不意味着没有用于创建或操作 PDF 文件的软件
文件格式规范
PDF 文件是一组字节,可以根据 PDF 规范定义的语法规则分组到标记中。一个或多个标记组合在一起形成更高级别的语法实体,主要是对象,它们是构建 PDF 文档的基本数据值。
PDF 文件的文件结构
PDF 文件内容在文件中按以下顺序排列。
|页眉 |身体 |交叉引用表 |拖车
PDF 文件标题
无论 PDF 版本如何,PDF 文件都以包含 PDF 唯一标识符的标题和格式版本(如 %PDF-1.x)开头,其中 x 的范围为 1-7。
文件正文
PDF 文件的正文由一系列表示文档内容的间接对象组成。如上所述,对象表示文档的组件,例如字体、页面和采样图像。从 PDF 1.5 开始,正文还可以包含对象流,每个对象流都包含一系列间接对象。
交叉引用表
交叉引用表包含允许随机访问文件中的间接对象的信息,因此无需读取整个文件即可查找任何特定对象。该表应包含每个间接对象的单行条目,指定该对象在文件正文中的字节偏移量。(从 PDF 1.5 开始,部分或全部交叉引用信息也可以包含在交叉引用流中。
文件尾部
PDF 文件的尾部使符合要求的读者能够快速找到交叉引用表和某些特殊对象。符合要求的读者应从其末尾阅读 PDF 文件。文件的最后一行应仅包含文件结束标记 %%EOF。前面的两行应包含关键字 startxref 和解码流中从文件开头到最后一个交叉引用部分中外部参照关键字开头的字节偏移量,每行一行。
PDF 对象
PDF 文件包含以下几种不同类型的对象
- 布尔值 - 表示条件 true 或 false
- 数字 - 整数和实数值
- 字符串 - 括号内包含字符
- 名称 - 以正向 / 字符开头,例如 /ASomewhatLongerName 会导致 ASomewhatLongerName
- 数组 - PDF 支持一维数组。通过使用数组作为嵌套元素,可以构造更高维度的数组
- 字典 - 作为键值对的对象集合。它可以有零个条目。
- Streams - 表示字节序列,也可以是无限长度的
- Null 对象 - 表示 null 值 可能还有其他对象,如注释,它们以 % 符号引入,并且可能包含 8 位字符。
间接对象
PDF 文件中的任何对象都可以标记为间接对象。间接对象被赋予唯一的对象标识符,其他对象可以通过该标识符引用它。对这些对象的交叉引用保留在索引表中,并使用 xref 关键字进行标记,该关键字位于主体后面,并给出每个间接对象从文件开头开始的字节偏移量。
线性和非线性 PDF 布局
PDF 布局分为 Llnear 和非线性,具体取决于目标应用程序和其他因素。
非线性 - 与线性 PDF 文件相比,非线性 PDF 文件使用的磁盘空间更少。文档的 PDF 页面以分散的形式驻留在 PDF 文件中,这就是为什么非线性文件与线性文件相比速度较慢的原因。
线性 PDF - 针对在线 PDF 查看器,线性 PDF 文件的构造方式是以线性方式写入磁盘。这不需要浏览器插件,整个文档在显示之前首先加载。
对象概述
如前所述,PDF 正文是上述对象的集合。PDF 主要基于 PostScript,没有编程语言的控制功能,如 if 和 loop 命令。除了文档引用的任何文件、图形或字体之外,还会收集 Postscript 代码发出的用于生成图形内容的命令并对其进行标记化。所有这些内容都累积到一个文件中,从而产生组合的 PostScript 输出。
发短信
PDF 中的文本由文本元素表示,这些元素实际上与字体中的字形一起显示。字形是一种图形形状,受所有图形操作(如坐标转换)的约束。由于文本在大多数页面描述中的重要性,PDF 提供了更高级别的工具来方便高效地描述、选择和呈现字形。
图形
PDF 内容流中使用的图形运算符描述要在光栅输出设备上复制的页面的外观。这些设施适用于打印机和显示器应用。图形运算符构成六个主要组:
- 图形状态运算符操作称为图形状态的数据结构,图形状态是其他图形运算符执行的全局框架。图形状态包括当前转换矩阵 (CTM),该矩阵将 PDF 内容流中使用的用户空间坐标映射到输出设备坐标。它还包括当前颜色、当前剪裁路径和许多其他参数,这些参数是绘制运算符的隐式操作数。
- 路径构造运算符指定路径,这些路径定义各种形状、线轨迹和区域。它们包括用于开始新路径、向其添加线段和曲线以及关闭新路径的运算符。
- 路径绘制运算符用颜色填充路径,沿路径绘制描边,或将其用作剪切边界。
- 其他绘制运算符绘制某些自描述的图形对象。其中包括采样图像、几何定义的阴影以及包含图形运算符序列的整个内容流。
- 文本运算符从字体(用于表示文本字符的字体描述)中选择并显示字符字形。由于 PDF 将字形视为常规图形形状,因此许多文本运算符可以与图形状态或绘画运算符组合在一起。但是,用于处理字形和字体描述的数据结构和机制已经足够专业化。
- 标记内容运算符将更高级别的逻辑信息与内容流中的对象相关联。此信息不会影响内容的呈现外观;它对于使用 PDF 进行文档交换的应用程序很有用。
来自<文心一言>
PDF 电子书格式是一种由 Adobe Systems 开发的文件格式,它具有以下特点:
跨平台性:PDF 格式可以在不同操作系统和设备上进行查看和打印,保持文档的一致性和可读性。 可靠性:PDF 文件可以保留文档的原始格式和布局,无论在何种设备上打开,文档的显示效果都会保持一致。 可编辑性:PDF 文件可以通过专业的编辑工具进行编辑和修改,添加注释、标记和表单等元素。 安全性:PDF 格式支持密码保护和数字签名等安全机制,可以保护文档的机密性和完整性。 文件压缩:PDF 文件可以进行压缩,减小文件大小,方便传输和存储。 此外,PDF 格式还支持多种元素,如文本、图像、链接、表格、多媒体等,具有高度的可扩展性和可靠性。在 PDF 文件中,可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。对普通读者而言,用 PDF 制作的电子书具有纸版书的质感和阅读效果,可以逼真地展现原书的原貌,而显示大小可任意调节,给读者提供了个性化的阅读方式。
总之,PDF 电子书格式是一种广泛使用的电子书格式,具有多种优点和功能,适用于各种场景和需求。