架构决策记录
架构决策记录(Architecture Decision Record,ADR)保存关键取舍的背景、结论和影响,不代替使用文档。
记录范围
以下变化需要 ADR:
- 核心分层、模块依赖或数据流变化。
- 公共 API、SPI、单位或资源所有权契约变化。
- 引入重要基础依赖、原生组件或新的格式后端。
- 字体与塑形方案、确定性策略或发布兼容性政策调整。
局部修复和纯格式调整通常只需在变更说明中解释。
编号与状态
文件采用连续四位编号和简短英文名称,例如 0001-layered-architecture.md。
状态使用“提议”“已采纳”“已废弃”或“已取代”。“已采纳”表示设计基线,不表示功能已经实现。
已采纳记录保留历史背景。新决策改变旧结论时,新增记录并建立双向链接,标记旧记录的替代状态。
内容要求
每条记录至少包含标题、日期、状态、背景、决策、考虑的替代方案、影响及验证方式。未验证的依赖或性能结论必须明确说明。
决策索引
| 编号 | 决策 | 状态 |
|---|---|---|
| 0001 | 分层架构与格式边界 | 已采纳,来自立项基线 |
| 0002 | 首个 PDF 输出闭环 | 已采纳,阶段一实现 |
| 0003 | 字体与基础文本排版 | 已采纳,阶段二实现 |
| 0004 | 语义段落与基础分页 | 已采纳,阶段三首批实现 |
| 0005 | 混合内容与基础表格 | 已采纳,阶段三表格实现 |
| 0006 | 组件与 PDF 交互 | 已采纳,PDF 首版实现 |
| 0007 | 进阶布局与字体组缺字策略 | 已采纳,进阶 PDF 首版实现 |
| 0008 | 排版扩展、输出适配与本地交付 | 已采纳,首批本地实现与验证完成 |
| 0009 | 公共复杂文本、模板与受控导出 | 已采纳,扩展默认文本路径与执行范围 |
| 0010 | 行内图像、共享行布局与 DOCX 媒体 | 已采纳 |
| 0011 | 多矩形浮动区域与固定行带 | 已采纳 |
| 0012 | 连续文字区域与当前页分栏 | 已采纳 |
| 0013 | 混合组件和表格的连续区域流 | 已采纳 |
| 0014 | 行内语义字段与注释锚点 | 已采纳 |
| 0015 | 语义表格字段与逐页解析 | 已采纳 |
| 0016 | DOCX 原生字段与显式导入宽度 | 已采纳 |
| 0017 | 常用编写入口与布局阶段两端对齐 | 已采纳 |
| 0018 | 统一公共链式构建与声明式表格 | 已采纳 |
| 0019 | 嵌套文字与合并格显式续页 | 已采纳,默认整组行为保持 |
| 0020 | 静态表单与行内矢量布局 | 已采纳 |
| 0021 | 组件中的语义表格插槽 | 已采纳 |
| 0022 | 语义表格区域续排与呈现身份 | 已采纳 |
| 0023 | 组件默认样式与显式声明 | 已采纳,完整文字样式和颜色独立继承,保留显式意图 |
| 0024 | 合并网格中的语义表格续排 | 已采纳 |
| 0025 | 离线声明式模板 | 已采纳 |
| 0026 | 原文簇、段落方向与塑形上下文 | 已采纳 |
| 0027 | 有界静态 PDF 页面操作适配器 | 已采纳 |
| 0028 | 严格 Markdown 模板 | 已采纳 |
| 0029 | XML 原生字段、编号与被动外链 | 已采纳 |
| 0030 | 组件文字的逐属性继承 | 已采纳,保留旧完整样式语义 |
| 0031 | 单向长表与同步逐页输出 | 已采纳,固定列普通文字子集;PDFBox 页树仍增长 |
| 0032 | 语义表格列合并与标准 DOCX 网格跨度 | 已采纳;行合并、递归格及 Auto 跨列仍独立 |
| 0033 | 语义跨行合并与标准 vMerge | 已采纳;连通行组原子分页,纵向拆组及递归格独立 |
| 0034 | 有界块格与原子内表 | 已采纳;两层表深、共享全树预算、原子父组及标准尾段 |
| 0035 | XML 有界块级格内容 | 已采纳;直接段/内表顺序、全分支检查及复制引用 |
| 0048 | XML 固定页眉页脚与独立主题 | 已采纳;模型声明、共享绑定和最终页区组合 |
| 0049 | 语义页区、XML 分节与 DOCX 映射 | 已采纳;有序图文/表格、共享绑定、固定几何与标准页区关系 |
| 0050 | 语义 HTML/Markdown 导出与动作策略 | 已采纳;模型直出、逐功能损失、共享预算及原子输出 |
| 0051 | 不可变语义编辑与可查询损失报告 | 已采纳;跨运行替换、范围回滚、预检候选与完整性校验 |
| 0052 | 离线 CommonMark/GFM 语义导入 | 已采纳;成熟语法解析、显式资源、源位置及实际损失 |
| 0053 | 离线 HTML/CSS 语义子集导入 | 已采纳;有限级联、物理格、显式资源及损失报告 |
| 0054 | 统一转换与确切输出预检 | 已采纳;单次编码、共享实际损失、未编辑内容检查与原子发布 |
| 0055 | 保留源包的 DOCX 文字编辑 | 已采纳;普通运行编辑、复杂边界保留、整包验证与确切输出 |
| 0056 | DOCX 样式图展开与显式字体映射 | 已采纳;有限级联、真实角色、图损失及累计工作预算 |
| 0057 | 已有 PDF 的静态页级编辑 | 已采纳;物理坐标、显式叠加、裁剪损失及确切输出 |
| 0058 | 已有 PDF 的被动交互对象编辑 | 已采纳;字段外观、对象关系、显式扁平化及原内容保持 |
| 0059 | 被动 PDF 对象的选页和合并 | 已采纳;显式命名空间、关系重映射、实际损失及禁止隐式修复 |
| 0060 | 已有 PDF 的有界页面渲染与图片提取 | 已采纳;物理像素、显式字体、去重资源、实际损失及确切图像输出 |
| 0061 | 实测 PDF 优化 | 已采纳;流压缩、简单资源去重及显式有损重采样 |
| 0062 | 有界 PDF 文字替换 | 已采纳;命中范围编码替换、显式字体及后续坐标保持 |
| 0063 | 新建图片 PDF 的区域脱敏 | 已采纳;清除敏感像素、不复制源对象及全文光栅化损失 |
| 0064 | 有界 PDF 语义恢复 | 已采纳;逐行/标题推断、显式表格网格、流图片及共享转换 |
| 0065 | 递归语义格续排 | 已采纳;有界深表、纵向 owner、事务取片及原始格块序号 |
| 0066 | 递归片段与动态目的地 | 已采纳;组合命名、词法引用、完整动态目标及最终地址校验 |
| 0067 | 按实际栏宽换行 | 已采纳;可选区域宽度、完整来源与混合流同步传播 |
| 0068 | 编写时字体角色与颜色级联 | 已采纳;全局及分域声明意图、单项恢复与加入时快照 |
| 0069 | 语义首页与奇偶页区 | 已采纳;显示页码选择、显式空对、最大预留及标准 DOCX 开关 |
| 0070 | 固定语义页面图层 | 已采纳;静态页框、图层顺序、共享来源与明确转换损失 |
| 0071 | 变宽栏的最低行数 | 已采纳;有界全源重排、实际分配验证与最终诊断 |
| 0072 | 单向长表固定列横向合并 | 已采纳;真实物理列、完整覆盖、锚点及覆盖槽分开计费 |
| 0073 | 单向长表图像及被动外链 | 已采纳;共享最终几何、逐页交互、累计预算及显式拒绝 |
| 0074 | 合并格覆盖有界自动宽度列 | 已采纳;有界首选宽度、稳定约束顺序及一次内边距 |
| 0075 | 单向长表完整行续排 | 已采纳;源行测量一次、完整行/图片切片与页内最终链接 |
| 0076 | 离线 PDF 认证签名 | 已采纳;首签 DocMDP、显式三档权限及原子签名目标 |
| 0077 | 单向 PDF 的加密及静态归档 | 已采纳;共享权限、静态归档限制与锚点字体额度 |
| 0078 | 语义表格按实际区域宽度布局 | 已采纳;原子合并行组、独立候选预算与最终语义来源 |
| 0079 | 显式 CMS 校验与 PDF 字节覆盖分离 | 已采纳;有界快照、准确 ByteRange、完整性及未签追加分别报告 |
| 0080 | 单向长表实际页码与准确声明总数 | 已采纳;实际呈现解析、总数严格核对、来源及生成预算分开 |
| 0081 | 行内内容内表复用有界自动列宽 | 已采纳;父格实际宽度、完整探测来源及原生 DOCX 声明 |
| 0082 | 完整格源按实际变宽区域续排行 | 已采纳;完整来源、实际区域容量、图片字段及独立工作/呈现预算 |
| 0083 | 可编辑 XML 源码与普通资源 ZIP | 已采纳;复用现有模板编译/绑定、源码保留、显式资源及原子保存 |
| 0084 | 将语义模型映射到既有 XML 模板 | 已采纳;可读 XML、文字原样模式、显式报损、资源所有权及多轮编辑 |
| 0085 | XML 页区共享来源与模型保存 | 已采纳;同类静态引用、唯一源预算及变体/图层保存 |
| 0086 | XML 完整语义绑定与注释保存 | 已采纳;完整文档/注释结果、关系校验、Caption 及文字外链保存 |
| 0087 | 标准文件与准确绑定的 XML 恢复伴随包 | 已采纳;准确字节及资源绑定、当前文件回退、有损导出禁止源快照和历史损失累计 |
| 0088 | HTML 内嵌有界模型恢复包 | 已采纳;单文件注释封装、准确当前 HTML 绑定、显式回退和总编码预算 |
| 0089 | Markdown 与 SVG 共用有界恢复注释 | 已采纳;复用封装及清单、通用单文件 API、当前 Markdown 回退及 SVG 无读取器拒绝 |
| 0090 | 单页 PNG 使用私有辅助块恢复模型 | 已采纳;准确像素字节绑定、有界私有块、单页后端及无读取器拒绝 |
| 0091 | 标准容器中的恢复信息按调用显式写入 | 已采纳;DOCX/PNG 页 ZIP 成员、PDF 附件、准确绑定与显式体积代价 |
| 0092 | 有损输出从当前文件重建恢复模型 | 已采纳;显式当前字节读取器、目标损失降级、实际导入损失及源内容排除 |
| 0093 | 声明式导航与自生成文档恢复验收 | 已采纳;后端中立导航、当前标题解析、明确目标损失及 GAP-24 验收范围 |
| 0094 | 显式 PDF 源字体映射与不透明图形状态恢复 | 已采纳;调用方字体、源编码/字宽保持、替代损失及 ExtGState 独立白名单 |
| 0095 | 有界 Form XObject 语义恢复 | 已采纳;实际调用、资源作用域、重复实例及隐式 BBox 可见性 |
| 0096 | 外部 PDF 的保留、绘制与语义恢复分离 | 已采纳;显式被动结构、原对象保留、默认视图及整页光栅恢复的独立契约 |
| 0097 | PDF 原对象编辑、语义推断与标准输出分离 | 已采纳;实例隔离、选择性重建、显式推断、后端中立标签及离线标准证据 |
| 0098 | 显式矢量透明度与 SVG 仿射变换 | 已采纳;填充/描边 alpha 独立状态、三个后端逐次合成及受限静态 SVG 继承/变换 |
| 0099 | 保留已接受行宽的递归续排与显式轮廓锚点 | 已采纳;完整来源、变宽子树/网格、真实曲线行带与跨区域浮动 |
| 0100 | 原生颜色画刷与离线 SVG 资源 | 已采纳;高级色彩、混合/隔离组、渐变/图案和明确降级 |
| 0101 | 显式原生 OpenType 与 CFF 嵌入 | 已采纳;可选塑形模块、方向/轴/彩色字形及原生 CFF PDF |
| 0102 | 有界语义流、显式重放与 PDF 磁盘索引 | 已采纳;单次语义源、快照摘要、未来语义和逐页对象释放 |
| 0103 | 类型化 DOCX 专有语义 | 已采纳;标准结构重建、锚点编辑、批注/修订/控件/目录及明确投影损失 |
| 0104 | 有界离线 HTML/CSS 布局 | 已采纳;显式模式、组件树、媒体/分页与 Flex/Grid,源和布局预算保持 |
| 0105 | 显式 API 基线与签名分发 | 已采纳;固定旧提交、保守兼容检查、显式平台与本地签名包,远端发布独立授权 |
| 0106 | 可选 HTML 模板设计器 | 已采纳;独立应用、保留源码、同引擎预览/导出及显式损失 |
| 0107 | 画布编辑与两种显示模式 | 已采纳;React 画布、结构化富文本、便捷/精确模式及有界固定框 |
| 0108 | 原生 DOCX 数学模型与示例矢量排版分离 | 已采纳;有界 OMML 类型树、真实锚点、严格未知语法及示例依赖边界 |
| 0109 | 正文连续分栏使用可保存的语义容器 | 已采纳;可编辑连续流、通栏中插、真实来源及明确跨格式布局损失 |
| 0110 | 语义栅格、XML 保存与设计器 | 已采纳;显式轨道/跨轨项、整行原子分页及真实项边界 |
| 0111 | 普通文档按页规划、重放与释放 | 已采纳;共享分页、最终语义、轻量摘要及单页 PDF 对象直接复制 |
| 0112 | 普通内容块的按需输入与显式重放 | 已采纳;当前页来源窗口、单遍已知总数及两遍稳定快照 |