原生注释 FDF 交换

二进制 FDF 注释交换保留 PDF 对象图,而不是把每个注释映射到固定的 XML 词汇

使用 ExportAnnotationsFDF 生成 FDF 字节,使用 SaveAnnotationsFDFToFile 准备独立的增量 PDF 修订

图与外观资源

图保留名称、精确的数值 token、字面与十六进制字符串字节、数组、字典、间接引用和流字节

注释外观状态、AS 选择、共享字体和图像以及 Redact RO 流保留其共享引用拓扑;输出对象编号和序列化可以改变

编码时从保留的字节重新生成流长度;间接来源长度在解码期间解析并在发布前检查

A 中显式的本地 GoTo 目的地数组、被准入的 AA 事件和 Next 链会在其实际 action 上下文中重映射到目标文档的页面对象;资源图中其他位置的字典不会仅因其键形似 action 而被当作 action

交换保留 action 数据,但不执行脚本、不跟随外部文件引用、不导航到目的地,也不应用涂销

导入行为

FDF Page 值是从零开始的页面索引,必须指向已加载文档中的页面

同一页面上匹配的非空 NM 标识要替换的现有注释;未命名或不匹配的注释会被追加,歧义名称在发布前失败

语义未变的注释导入返回零;精确的 no-op 发布和回调恢复是验收契约的一部分

原生保存方法在成功和失败后都保持已加载文档不变;加载保存出的 PDF 以采用其新修订

权限与限制

导出需要提取权限,而实际注释变更需要注释权限和经认证的签名策略准入

认证 P1 和 P2 阻止注释变更;获准的 P3 修订保留原始签名字节,加密输入权限和字段锁定策略会针对实际文档求值

THPDFFDFOptions 独立限制字节、节点、对象、深度、注释计数和工作存储,协作式取消贯穿解析、准备和输出

失败或取消的保存保留目标文件和已加载图;输出或结果发布失败时,回调客户端也保留其最后提交的文档

边界

Link、Movie、Widget、PrinterMark、Screen 和 TrapNet 不在标准 FDF Annots profile 之内

仅注释导入拒绝非空 Fields 和内嵌文档 Differences,而不是悄悄丢弃其效果

任意 XFDF 外观容器语法、注释删除、内嵌 FDF 文件处理和应用内嵌文档修订仍是独立的工作

外观传输保留已提供的 AP 资源;它不合成缺失的外观,也不执行注释的 action

XML profile 见映射 XFDF 交换,独立图 API 见 THPDFFDFAnnotationGraph

显式注释移除

按页面与名称的注释移除是单独的操作;在导入的 FDF 或 XFDF 中省略某个注释不会删除它

Widget 字段树删除和安全擦除需要单独的操作;增量移除保留之前的 PDF 字节