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 的追加语义