什么是 FDF?PDF 表单数据格式详解
FDF 文件是 Adobe 早期的独立配套数据文件格式,用于把表单数据和 PDF 注释(也叫批注)与 PDF 分开保存。FDF 全称是 Forms Data Format(表单数据格式),在 Acrobat 早期推出,目的是把交互式表单值和标记(高亮、批注、印章)从 PDF 文档中分离出来。传统 FDF 使用与 PDF 相近的对象语法,通常是二进制;Acrobat 也可能导出 XML 编码的 FDF 变体。两类文件都不把数据嵌入 PDF 内部,而是作为独立配套文件供 Acrobat 重新合并——这正是许多法律、政府和企业工作流至今仍在生成 .fdf 文件的原因。
如果你曾从 Adobe Acrobat 的表单或注释会话导出过数据,最后在 PDF 旁边得到一个 .fdf 小文件,本指南将解释该文件实际包含什么,它和较新的 XFDF 格式以及常规 PDF 注释有何区别,以及如何区分传统二进制 FDF 与 XML FDF。我们的转换工具支持 XML FDF;传统二进制 FDF 需要先在 Acrobat 中重新导出为 XFDF 或 XML FDF。
FDF 是什么的缩写?
FDF 全称是 Forms Data Format。它是 PDF 规范为表单数据格式架构定义的文件格式之一,让 PDF 充当模板,而实际录入的数据则存放在单独的、小得多的文件中。同一个容器后来被扩展为也携带注释数据(高亮、下划线、便签和表单字段),这使得它便于在审阅者之间来回传递批注,而无需发送整个 PDF。
关于这个名称,有三点值得了解:
- "Forms"(表单)——该格式最初是为 AcroForm 字段值设计的,因此单个
.fdf文件就能表示一份已填写的表单。 - "Data"(数据)——有效载荷只是数据本身,视觉版式仍保留在 PDF 模板里。
- "Format"(格式)——它是公开的规范,不是专有二进制 blob,因此非 Adobe 工具也能(并且确实在)读取它。
FDF 文件里有什么?
FDF 的常见形态是二进制编码容器,基于与 PDF 自身相同的对象语法;另一种形态是 XML 编码文本。无论采用哪种编码,其高层数据都可能包含:
- 一个标识 FDF 版本的文件头。
- 一个指向 FDF 字典的根对象。
- FDF 字典,存放着有意义的字段:
/Fields——一组表单字段名/值对。/Annots——一组注释对象(高亮、批注、印章)。/Status——可选的审阅状态字符串。
- 一个交叉引用表和尾部,就像一个迷你版 PDF。
因为传统 FDF 镜像了 PDF 的内部对象模型,它很紧凑,能与 Acrobat 无损往返转换,但不方便直接阅读,在版本控制中也难以清晰对比变更。这正是 Adobe 后来推出基于 XML 的继任者 XFDF 的主要原因。
FDF vs XFDF vs PDF 注释
PDF 内嵌注释
当你在普通 PDF 中高亮或批注时,注释会作为二进制对象直接嵌入 PDF。这是可移植性最强的选项——注释随文档一起传输——但它会让文件膨胀,也使得单独提取或版本控制标记更困难。要把这些内嵌标记提取为结构化文本,请使用完整注释导出工具。
FDF(Forms Data Format)
FDF 是 Adobe 较老的配套数据格式,用于把表单数据和 PDF 注释(也叫批注)与 PDF 分开保存。它可能是传统二进制编码,也可能是 XML 编码。如果你有一个 .fdf 文件,可以先拖入 FDF 注释转换工具:XML FDF 会直接解析;传统二进制 FDF 会提示你重新导出。
- 优点: 比完整 PDF 小;与 Acrobat 无损往返转换;是 PDF 规范的正式组成部分。
- 缺点: 传统二进制文件不方便直接阅读,无法干净 diff,且需要专用解析器;XML FDF 虽可读,但生态兼容性仍不及 XFDF。
XFDF(XML Forms Data Format)
XFDF 是 FDF 的 XML 继任者。它携带相同数据,但以纯文本形式存储。请参阅我们关于什么是 XFDF 的完整说明,或用 XFDF 注释转换工具来转换文件。
- 优点: 可直接阅读,在 git 中干净 diff,任何 XML 库都能轻松解析,多数情况下比 FDF 更小,几乎被所有现代工具支持。
- 缺点: 由于 XML 冗长,文件略大于 FDF(但仍然很小——几 KB)。
快速对比
| 属性 | PDF 内嵌 | FDF | XFDF |
|---|---|---|---|
| 编码 | 二进制 | 传统二进制 / XML 变体 | XML(纯文本) |
| 可直接阅读 | 否 | 仅 XML FDF | 是 |
| 携带表单数据 | 是 | 是 | 是 |
| 携带注释 | 是 | 是 | 是 |
| 在 git 中干净 diff | 否 | 仅 XML FDF | 是 |
| 需要源 PDF | 否 | 是 | 是 |
为什么用 FDF 而不是内嵌注释?
在 PDF 文件庞大、邮件附件有大小限制、审阅者只想把自己的批注发回给作者而非整个文档的年代,FDF 是合情合理的。审阅者可以做完批注后导出一个极小的 .fdf,只把这个文件邮件发给作者;作者再把它导入自己的主 PDF,就能看到完全相同的标记。
如今,这一特性使得 FDF 在受监管环境(法律红线审阅、政府表单、临床文档审阅)中用于归档和审计追踪依然有用——在这些场景中,原始 PDF 必须保持逐字节不变,而批注要被单独跟踪。要了解一种无需 Adobe 即可读取这些文件的现代、本地优先替代方案,请参见 FDF 注释转换工具。
如何打开 FDF 文件
在 pdfannotations.com 上转换
最快的路径:把 .fdf 文件拖入 FDF 注释转换工具。XML FDF 会在浏览器本地解析,并允许你导出为 Markdown、JSON、CSV、Obsidian 或纯文本;如果文件以 %FDF 开头,说明是传统二进制 FDF,工具会明确提示不支持,请在 Acrobat 中重新导出为 XFDF 或 XML FDF。
重新导入 Adobe Acrobat
在 Acrobat 中,打开原始 PDF,然后选择 All Tools → Forms & Signatures → Import Data(或 Comments → Import Comments),选中 .fdf 文件。Acrobat 会把字段和注释重新合并到文档上。
在文本编辑器中打开
XML FDF 可以直接用文本编辑器查看;传统二进制 FDF 则会混合可读关键字(/Fields、/Annots、/Rect)和不可打印字节,不便手工阅读或编辑。要获得可读的标记,请在 Acrobat 中重新导出为 XFDF,再用 XFDF 转换工具处理。
用代码解析
传统 FDF 遵循 PDF 对象语法,需要能解析 PDF 对象的 PDF 库;XML FDF 则可按 XML 处理。对大多数开发者而言,让 Acrobat 重新导出为 XFDF,再解析 XML 要简单得多。
如何转换 FDF 文件
推荐的工作流是:
- 先确认文件类型:XML FDF 直接拖入 FDF 注释转换工具;以
%FDF开头的传统二进制 FDF,请在 Acrobat 中重新导出为 XFDF 或 XML FDF。 - 选择一种输出格式——笔记用 Markdown,流水线用 JSON,电子表格用 CSV,知识库用 Obsidian 格式。
- 如果你的目标是 Obsidian,请按照 XFDF 到 Obsidian 工作流操作——一旦 FDF 被解析,步骤完全相同。
如果你是从 Acrobat 出发,想先生成 FDF,那么如何导出 XFDF 批注(注释)指南涵盖了 Acrobat 的导出对话框(同一个对话框既能写 FDF 也能写 XFDF)。
FDF 文件大小与限制
FDF 文件通常只有几 KB——它只存储数据,从不存储页面内容。字段或注释数量没有实际限制;即便是一份带大量标记的 500 页合同,产生的 FDF 也远小于 1 MB。需要注意的限制是:FDF 离开源 PDF 毫无意义——字段和注释坐标是参照原始文档的页面几何来引用的,因此你需要那份 PDF(或一个能重建上下文的转换工具)才能理解这些数据。
常见 FDF 误区
"FDF 和 PDF 一样"
不对。FDF 复用了 PDF 的对象语法,但它是独立配套数据文件,不是可查看的文档。你无法单独打开一个 FDF 并看到页面。
"FDF 已被弃用"
并不准确。Adobe 推荐在新工作流中使用 XFDF,因为它基于文本、更易处理,但 FDF 仍是 PDF 规范的一部分,Acrobat、许多企业表单系统和政府门户仍在生成它。FDF 注释转换工具之所以存在,正是因为这些文件在现实中仍然很常见。
"没有 Adobe 就读不了 FDF"
错误。FDF 是一种公开格式,现代解析器(包括我们的本地优先转换工具)无需任何 Adobe 软件即可读取它。
"把 FDF 转成 XFDF 会丢失数据"
错误。XFDF 携带与 FDF 相同的字段和注释数据。FDF → XFDF 的转换对注释和表单值是无损的。
什么时候应该用 FDF?
- 你收到了一个 .fdf 文件,来自 Acrobat、政府表单系统或法律审阅工具——用 FDF 注释转换工具转换它。
- 你需要严格的审计追踪,要求主 PDF 保持不变——把批注保留在独立 FDF 文件中。
- 你在与一个只输出 FDF 的旧式企业系统对接。
对任何新工作流,请优先选择 XFDF 或内嵌注释——它们更易阅读、diff 和转换。
常见问题
.fdf 是什么的缩写?
.fdf 全称是 Forms Data Format,是 Adobe 用于 PDF 表单数据和注释的独立配套文件格式,常见为传统二进制编码,也可能采用 XML 编码。
FDF 和 XFDF 一样吗?
不一样。它们可以携带同类数据,但传统 FDF 使用 PDF 对象语法,XFDF 则是 XML(纯文本)。XFDF 更易读取和转换;请参见我们关于什么是 XFDF 的指南。
没有 Adobe Acrobat 能打开 FDF 文件吗?
XML FDF 可以。把它拖入 FDF 注释转换工具即可读取并导出其内容。传统二进制 FDF 需要在 Acrobat 中重新导出,或使用能解析 PDF 对象的专用库。
FDF 会保留高亮颜色吗?
会。FDF 存储注释外观属性,包括颜色、不透明度和作者,方式与 PDF 内嵌注释相同。
我能手工编辑 FDF 文件吗?
不建议直接编辑传统二进制 FDF,容易出错。请先在 Acrobat 中重新导出为 XFDF;XML FDF 和 XFDF 则可用文本编辑器修改,但建议改前备份。