带版本的对象图 JSON 往返

HotPDF 可以将完整的已加载间接对象图流式传输到带版本的 JSON,并重建可编辑的文档,而无需将 PDF 值扁平化为作业描述

模式与兼容性

当前 HotPDF-object-graph-2 模式记录 schemaVersion、minimumReaderVersion、PDF 版本、trailer Root 和 Info 引用、每个选定的间接对象、已删除对象标识符以及快照或增量类型

读取器为兼容性接受较早的 HotPDF-object-graph-1 格式,并在更改目标文档之前拒绝未来或不兼容的模式版本

编辑往返使用 v2 流 API,因为 v2 记录每个流负载是原始过滤数据还是解码数据

流式传输与二进制负载

ExportLoadedObjectGraphJSONToStream 将对象和递归有序的 PDF 值直接写入目标流,而不构建文档大小的 JSON 字符串

原始或解码的流字节可以省略、作为分块 base64 嵌入,或作为所提供目录下的侧车文件写入

侧车名称是安全的叶名称,发布使用同级临时文件后原子替换,导入拒绝遍历或绝对路径

导入器读取固定大小的输入块,一次只物化一个顶级对象条目,同时强制执行 JSON 字节、对象数和编号、值深度、字符串字节、单个流和聚合流字节的限制

快照与增量模式

快照导出完整图,ogjimReplace 在将其换入目标之前验证候选文档

增量导出只包含脏、必须写入和已删除的对象;ogjimUpdate 对照现有图和增量的并集验证引用,然后通过已加载图事务机制提交

任何格式错误的值、未解析的引用、无效的 Catalog 或 Pages 树、不一致的直接或间接流 Length、耗尽的预算或失败的侧车读取都使目标保持不变

安全边界

JSON 图包含 PDF 对象和 trailer Root 与 Info 关系,但从不导出密码、加密密钥或活动安全处理器状态

因此替换的快照在应用程序在保存前显式配置输出保护之前保持未加密

主要 API

对象图编辑与页面组装