ADR-0097:PDF 原对象编辑、语义推断与标准输出分离
状态:已采纳。
背景
GAP-10、GAP-11、GAP-20 涉及不同的保留目标:原页面编辑需要保持未命中内容,语义恢复需要明确承认推断,安全脱敏需要删除源内容,标准输出需要完整的最终文件证据。共用一个宽松的“兼容模式”会混淆这些契约。
决策
- PDF 适配器的原对象编辑保持独立入口。同一行跨字体、颜色及受支持定位的文字匹配保留原字形来源,样式/字距变化需显式接受损失;图片按实际绘制实例选择,沿命中 Form 调用路径复制资源,保留其他实例及已验证的可选图层关系。
- 选择性脱敏重建完整新文档,不复制源流、附件、替代文字或历史。受支持的保留字形重新子集嵌入,图像实际清除像素,路径实际减去选区几何。无法完整处理的结构拒绝整个候选,不能以裁切隐藏或部分成功代替删除。字体程序的普通标识信息不等于任意隐藏载荷清洗保证。
- 多行、comb、富文本、多选、被动标记批注及 FDF/XFDF 使用明确模型与确定性外观;安全 XML 和显式资源禁止脚本及外联。XFA 使用独立读取/扁平化通道,限定静态定位及受支持流式重复结构,普通编辑入口继续拒绝 XFA。
- PDF 自动恢复为显式
Analysis.AUTO,旧逐行默认不变。有界几何分析推断栏、段落、页区和表格,显式网格优先。推断始终产生实际损失和不确定性诊断,来源保留页、叶框及物理单元格路径,不承诺原版重建或 OCR。 - 无障碍结构属于后端中立的
AccessibilityTree,持有逻辑顺序和最终绘制命令绑定。语义模型桥根据源 ID 和 Layout IR 建立绑定,不重新测量或分页。未绑定绘制明确失败;改变命令索引的组合必须重新提供绑定,不静默丢标签。PDF 后端显式选择 PDF/UA-1,已有标签结构通过独立受限读取/元数据编辑入口处理。 - PDF/A 明确选择 1b/2b/3b/4f,分别控制字体、RGB ICC、附件及元数据。已有文件转换是显式有损的 RGB 页面重建。生成与转换分别对每份最终文件执行独立合规验证。
- PAdES B/T/LT/LTA、信任链、OCSP/CRL、RFC 3161、DSS 更新及续期使用显式证书、信任锚、时间和回调,不使用系统信任或隐式联网。签名字节完整性、信任、证据有效性和 DocMDP 修改符合性分别报告。密码权限、无效输入、签名影响、预算和取消不能由损失策略绕过。
后果与验证
公共 API 不暴露 PDFBox 或 Bouncy Castle 类型。BC 仅为 PDF 后端内部依赖,许可与实际运行 SBOM 同步。默认 ERROR,WARN/IGNORE 接受相同处理并保留实际损失;完整候选预检及原子输出继续适用。
各入口保留独立支持范围,不从一种字体、表单或标准样例推断任意文件兼容。验收分别检查模型/来源、独立文件结构、双引擎渲染、标准合规、独立验签和实际辅助阅读器;全新 Maven 调用方核对已构建制品。证据入口见整体验收。