Windows 注释 XFDF 交换
Windows 文件作业和 hpdf_document_execute_json_v1 经经认证的 Windows 事务桥导出映射注释并追加 XFDF 注释
映射类型和属性与原生注释 XFDF 共享,包括设界的二进制附件/声音流、Unicode 富内容、popup 对象和前向回复
文件作业
{
"schemaVersion": 1, "type": "annotations.import", "format": "xfdf",
"input": "source.pdf", "annotationInput": "annotations.xfdf",
"output": "annotated.pdf", "password": "owner",
"annotationLimits": {"maxBytes": 1048576, "maxAnnotations": 1000},
"budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
"timeMilliseconds": 60000, "resultBytes": 16777216}
}
annotations.export 使用相同的 format、input、output 和可选 password,写出 UTF-8 XFDF 而不是 PDF;导入需要 annotationInput
输出不得与 PDF 输入、XFDF 输入或提供的信任/证据文件互为别名,既有硬链接也不例外;发布先保留一个独占的临时同级文件、校验设界结果、flush 并关闭候选,然后原子替换目标
失败与取消保留既有的完整目标,并移除操作的临时文件
原始 V1 回调
使用 hotpdf_abi.h 中未改动的 hpdf_operation_v1 和 hpdf_io_v1;注释交换不需要字体扩展
先用 hpdf_document_load_from_io 加载目标 PDF;导入从 InputIO 读 XFDF、把候选 PDF 写到 OutputIO、把设界 JSON 写到 ResultIO;导出读取活动的自有 PDF 并把 XFDF 写到 OutputIO
加密输入请重复用于认证已加载 PDF 的操作口令;本操作不会保留早前加载调用遗留的隐式口令
只有 PDF 与结果回调都成功且最终取消检查点通过,才采纳新文档和自有修订版;输入、输出或结果回调失败、畸形 XML、限额耗尽和取消都保留先前 context
后面的失败发生前,回调可能已收到候选字节;只在返回 HPDF_STATUS_OK 之后才发布调用方自有的目标
策略、限制与结果
导入认证既有签名完整性和 ESS 签名者绑定;P1 与 P2 认证拒绝注释变更,P3 允许保留原始已签字节的注释修订版
AES-256 R5/R6 导入保留加密参数和原始修订版前缀;空导入认证策略并精确保留当前字节
signaturePolicy 接受Windows form 数据交换所述的既有 Boolean 信任/时间戳/吊销要求和显式信任路径
annotationLimits 可以调低 maxBytes、maxAnnotations、maxNodes、maxDepth 和 maxWorkingBytes;值为正整数 JSON 数字,不能抬高计算出的默认值
工作、输出、结果、对象和页预算同样生效;回调操作接受 elapsedMilliseconds 作为额外更紧的时限
导出报告 annotationCount、skippedAnnotationCount、decodedAttachmentBytes 和 outputBytes;导入报告 updated、outputBytes 和等于 mapped-annotations-v1 的 annotationProfile
边界
能力通过 file-job 和 execute-json-v1 宣告注释交换,含仅追加导入、通用 appearanceImport=false 和限定范围的 stampAppearanceImport=true
标准 stamp 外观传输通过 base64 类型化 XML 保留真实的 Form 流以及有界的无环字体、图像和图形资源
通用 AP 传输、注释替换/移除、更广的 action 和 FDF 注释数据仍是独立工作;远程 GoToR action 与本地目标使用各自既有的设界 profile
通用的 ExecuteLoadedOperation 和较旧的作业句柄回调记录是独立入口;Pascal 调用方可用显式的事务类
二进制 FDF 交换
同一批文件作业和 V1 回调接受 format="fdf";文件导入从 annotationInput 读取二进制 FDF,导出把二进制 FDF 写到选定输出
FDF 对象图 profile 保留已提供的外观资源和共享间接对象,并支持同一页面上匹配非空注释 NM 的替换
FDF 导入返回 annotationProfile="pdf-object-graph-v1";updated 统计实际注释变更,等价导入保留精确的当前修订
FDF 在正整数 annotationLimits 控制之外增加 maxObjects,并使用既有的认证策略、有界候选发布和回调所有权规则
Pascal 调用方可使用 THPDFWindowsFormDataTransaction.ExportAnnotationsFDF 和 ImportAnnotationsFDF;ChangedAnnotations 报告此 profile 的实际变更
非空 FDF Fields 和内嵌 Differences 需要单独处理,会在发布之前使仅注释操作失败
Windows 注释移除为精确的页面加 NM 标识提供单独的准备事务与 JSON 作业,不改变映射 XFDF 的追加语义