剩余能力执行计划
更新日期:2026-10-29。总状态以缺口表为准。每个交付单元都要完成源码评估、实现、行为回归、独立输出验收和状态复评;不以接口存在作为完成证据。
当前未完成的独立项为 GAP-14.2、GAP-14.3、GAP-22。GAP-13 已由阶段一百零八完成独立 HTML 设计器和四套完整业务样例。GAP-12.1/12.2 已闭合;提交 cc132e7 的三平台构建及临时密钥签名分发远端 CI 均已通过,见阶段一百零五。0.1.0-rc.1 已完成正式签名、Central 发布及真实远端消费,见发布记录;稳定 API/稳定版、更多阅读器兼容与新增发布工作流的 GitHub 实际运行继续在相应条目验收。下文历史阶段的未发布说明仅对应当时批次。
阶段一百零六已固化 16 条互转路径/32 份输出/73 次控制检查,修复 DOCX 完整包校验与输入预算,升级受公告影响的 jsoup,并固定 0.1.0-rc.1 候选 API 基线。新增 CI 配置只有本地证据;正式分发仍未执行,不以候选准备关闭 GAP-14.3。
阶段一百零七完成本轮 Windows 可执行的 Word/PDF 应用交互及最终 JAR 保存回读,修复现代 DOCX 模式声明与 PDF 应用元数据兼容。1,792 项测试、最终隔离消费者、固定语料及无打印依赖验证通过。浏览器前台交互、其他平台和本批新 CI 尚未执行,GAP-14.2 继续保留;本轮修改后的字节未重新签名,正式发布保持未执行。
阶段三十八至四十完成组件角色作用域/固定富文本、独立列表标记及 XML 分域默认外观。最终评估认为当前 PDF 报告/静态密集表单已可进入本地业务试用,证据和 API 选择见首版就绪评估。以下更广任务继续保留开放状态,后续按具体业务或复现缺陷选取独立单元,不据本次结论宣称全部 GAP 关闭。
后续扩展推进顺序
阶段九十完成 GAP-24 的四项验收:声明式导航及样式自动恢复、七格式可选恢复信息、已支持原包/原页面保留编辑、跨特性多轮与真实 Word 保存回读。完成范围以 ADR-0093为准;任意外部文档识别和更多原对象编辑继续归各自独立缺口。
缺口表将后续工作拆为可独立关闭的扩展项,状态以该表为准。以下顺序用于选择下一交付单元,具体字体、结构、标准等级和格式方向仍须先定义接受范围;没有实现及独立证据的条目不得标为已完成。
| 顺序 | 对应缺口 | 下一交付单元 | 完成门槛 |
|---|---|---|---|
| 1(已完成) | GAP-10.6;GAP-14.2 持续 | 阶段九十三完成原剩余清单:CID/字典编码映射、传统 Type1/静态 Type3、Form 调用隔离编辑、裁切/透明与更多 ExtGState、被动图层/标签;各入口的保留/编辑/渲染/语义降级已分别验收 | 以兼容矩阵及阶段证据关闭 GAP-10.6;GAP-14.2 的跨平台/阅读器矩阵仍继续,不由本批语料关闭 |
| 2(已完成) | GAP-12.1 | 阶段一百零三完成浮动图/真实文本框/图片变换、四层组合表及两节三类页区;实际 Word 编辑/字段更新/保存/重开/发布 JAR 回读已通过 | 五个 OOXML 包标准校验零错误;4 页 Word 原生页面、4 页 Word PDF 与 4 页语义投影 PDF 的内容、双引擎渲染及逐页复查通过。打印类禁止加载时发布 JAR 的生成/转换通过;Word 仅用于兼容性验收,不作为生产依赖 |
| 3(已完成) | GAP-20.2、GAP-20.1 | 阶段九十五完成 AUTO 多栏/段落/标题/列表/页区和自动有线无线表格、合并/嵌套/跨页检测;显式网格覆盖和不确定性诊断保持 | 104 次转换、来源与唯一顺序、24 个负控制及双引擎输出已验收;不把扫描件识别或一般原版重建计入成果 |
| 4(已完成) | GAP-10.7、GAP-10.8、GAP-10.9 | 阶段九十七完成跨定位/样式文字替换、指定图片实例替换和选择性真实脱敏的明确子集 | 未命中字形、共享实例、蒙版/alpha、关闭图层、敏感几何/像素实际清除及旧目标保护已独立验收;不支持脱敏结构整体失败 |
| 5(已完成) | GAP-10.10、GAP-10.11、GAP-12.2 | 阶段九十四完成扩展字段/批注/FDF/XFDF;阶段一百零三补齐 DOCX 目录/评论/修订/现代控件/旧式表单的有类型编辑 | PDF 既有证据保持;DOCX 修订真实删除/恢复、缓存显式更新、11 个物理现代控件和三个旧式表单、Word 实际编辑保存重开与当前/默认值回读已验收;未建模结构明确拒绝或报损 |
| 6(CSS 已完成) | GAP-18.1;GAP-14.2 持续 | 阶段一百零四完成静态选择器、媒体/分页、Flex/Grid、尺寸与定位的明确文档子集;跨平台/阅读器矩阵仍归 GAP-14.2 | 14 页 PDF、8 份 SVG、Chromium 源几何、4 项负控制、真实损失及原子输出已验收;完整浏览器功能不属于该明确子集 |
| 7(已完成) | GAP-11.2、GAP-11.3、GAP-11.1 | 阶段九十六完成 PDF/UA-1、PDF/A-1b/2b/3b/4f 和离线 PAdES B/T/LT/LTA;生成样例及已有标签文件两页实际辅助阅读器通过,模型第一页实际读回覆盖角色和占位修复,完整结构/合规/渲染与原目标分别闭合 | 12 份最终文件独立合规、9 份签名独立验证及 43 页双渲染通过;辅助阅读器按实际执行单列,证据缺失或过期明确失败 |
| 8(XFA 子集已完成) | GAP-22、GAP-13、GAP-10.12 | 阶段九十四完成静态定位/动态重复数据分页 XFA 子集;新增格式继续独立;设计器已由阶段一百零八验收 | XFA 字段值、分页、交互损失与独立结构/渲染已验收,不承诺通用 XFA;其他格式和设计器不创建占位适配器 |
GAP-09 的既定语义、PDF 对象与有限持续容量由阶段九十九完整验收。GAP-14.2 的兼容矩阵及 GAP-14.3 的 API/发布检查继续贯穿各批;本地制品不等于正式分发。每项开始前固定剩余清单及关闭条件,新增范围单独评估,不反复扩大原项。GAP-23 的 OCR 仍在范围外。
阶段九十八的四个固定单元已由阶段九十九继续完成全部原剩余清单;GAP-03/08/09/21 及其已有扩展子项均按完整证据关闭。GAP-04/07 已有目标仍保持关闭;GAP-18.1 的明确文档 CSS 布局子集已由阶段一百零四验收,设计器继续归 GAP-13,完整浏览器功能不属于该 CSS 子集。
自生成文档的恢复与往返推进
完整目标、当前状态与排除范围见恢复与往返缺口。四项均已完成所列声明模型/目标子集验收,详见阶段九十。
| 分项 | 已交付行为 | 使用边界 |
|---|---|---|
| GAP-24.1 | 已支持模型/注释/引用/页区与显式图片/字体/许可保存;新增声明式导航与完整目录样式意图 | 原 XML 保存主题/变量/条件/循环,运行时 Java 代码与字体句柄不序列化 |
| GAP-24.2 | 七种标准容器的可选伴随/内嵌、准确字节和资源绑定、损坏拒绝及三动作当前文件回退 | 外部应用可能移除恢复信息;普通导出无内嵌体积,不能从旧包补回当前已删除内容 |
| GAP-24.3 | 无编辑字节、DOCX 未改包条目、PDF 未改页/文字区域、修改/脱敏后旧绑定失效 | 复用已支持原对象路径;更广结构、标签、签名及被动标记内部编辑分别按 GAP-10/12 推进 |
| GAP-24.4 | 简单/复杂七格式、分节、注释引用及完整组合多轮矩阵;实际编辑、独立结构/渲染和 Word 保存回读 | 只覆盖声明方向;静态后端拒绝交互链接,无匹配信息时 SVG/PNG 没有通用语义导入 |
范围与既有单元
阶段四十一已完成固定 XML 页眉页脚、独立主题及最终页码:共享绑定/预留/组合路径、1,041 项测试、5 页独立双渲染与新调用方通过。阶段四十二进一步完成页区图片/表格、XML 分节及 DOCX 默认页眉页脚的完整模型和导入导出闭环。主题角色/颜色级联、首页/奇偶页区和 XML 背景/前景已由阶段六十至六十二验收,GAP-04 的既定目标已完成。
OCR 不在当前范围内。下表保留既有推进单元及状态;编辑、导入与转换按后文的专项顺序推进,各项仍须独立验收。
| 序号 | 单元 | 实际验收目标 | 当前状态 |
|---|---|---|---|
| 1 | XML 主题与静态名称 | 同一结构切换完整主题;p/span 静态名称、全部分支编译校验、旧默认兼容;独立 PDF/SVG/DOCX 及调用方 | 已完成阶段三十一:780项测试、4新页、12组独立检查与新调用方 |
| 2 | 可编辑字段与页区样式 | 字段默认外观与自动保存回读一致;页区/目录复用样式;显式覆盖与旧调用兼容 | 字段显式 FormStyle 已完成阶段三十二:807 项测试、8 页及新调用方;目录独立样式及固定页区字体角色已验收;标准角色作用域与固定富文本已验收;XML 固定页眉页脚主题已验收;更广主题及人工阅读器继续独立 |
| 3 | 复杂表格与长表内容 | 递归续排、纵向拆组、变宽网格及单次/重放长表,保持唯一来源和有界推进 | 已完成既定目标,见阶段九十九及 GAP-03/09 |
| 4 | 模板与编写体验 | 显式离线 include、多级编号、明确定义的 HTML/CSS 子集及设计器编辑/预览/重载闭环 | 平面离线 include 已完成阶段三十三;多级编号已验收;XML 默认字体/颜色和独立列表标记已验收;离线 HTML/CSS 输入已验收;普通 ZIP 源码编辑与资源保存已验收;文档 CSS 布局已验收,HTML 设计器已完成编辑/预览/保存重开和导出;不承诺完整浏览器功能 |
| 5 | 文字与 DOCX 兼容 | 实际搜索/选择语料、Word 保存回读、复杂页区及交互语义映射;逐应用记录结果 | 部分支持;不能用本机结果代替跨平台证据 |
| 6 | PDF 编辑与标准 | 交互编辑、优化、无障碍结构与各档签名分别确定契约并独立验收 | 页/对象编辑、组合、渲染、优化、替换、脱敏及语义恢复的明确子集已验收;GAP-10/11/20 的全部既定子项已由阶段九十三至九十七验收,选定标准版本和输入子集之外仍不承诺支持;OCR 排除 |
| 7 | 长期容量与发布前检查 | 重复/并发/失败恢复、资源释放、PDF 对象增长和更多系统/阅读器;持续本地许可/制品验证 | 有界样本已有;硬内存边界、长期稳定性及更多平台仍开放 |
每个单元完成源码审查、串行构建、行为测试和独立输出验收。验证失败时保留记录,修正后重跑;完成后更新能力状态与证据。需要实际外部环境的项目登记可复现步骤和未验收边界。
既有阶段的交付记录
| 单元 | 实现及独立证据 | 当时边界与后续证据 |
|---|---|---|
| 外部 CFF 与连续显示指令 | 阶段七十六,嵌入程序检查、渲染/编辑/脱敏/恢复、四格式策略及原编码范围保持 | 未嵌入字体、更多资源结构、跨字体/定位/样式匹配独立 |
| 单向图文及外链 | 阶段六十五,显式 PNG/JPEG、共享最终链接几何及逐页预算 | 可编辑交互、字段/未来引用独立 |
| 自动列合并 | 阶段六十六,横向/纵向 owner、有界首选约束与窄宽收缩 | 含块格表 Auto、横向分页独立;行内内表 Auto 见阶段七十四 |
| 单向长行分页 | 阶段六十七,一次换行、完整行/图片片段及真实链接/诊断 | 纵向合并、块格和二遍来源独立 |
| 离线认证签名 | 阶段六十八,三档 DocMDP、7 份 CMS 完整性验签及原子签名 | 现有签名/信任验证、PAdES/时间戳/长期验证独立 |
| 并发失败恢复 | 阶段六十九,同一引擎多线程重复 READ/CLOSE/ACCEPT/CANCEL/OUTPUT 失败后恢复 | 有限运行,不扩大为长期无泄漏或 PDF 恒内存 |
| 单向 PDF 安全配置 | 阶段七十,AES-256、静态 PDF/A-2b 与锚点字体预算 | 最终文件独立合规,仍不提供自动签名或完整 PDF 恒内存 |
| 行内内表自动列 | 阶段七十四,父格实际宽度、合并锚点、递归续排及 DOCX 声明 | 含块格表 Auto、单向 Auto、Word 通用布局独立 |
| 变宽行内格拆行 | 阶段七十五,完整格源、实际行容量、横向合并、图片/字段/链接和最终物理分页 | 变宽行内格纵向 owner 已接入;递归块子树及组件网格独立 |
| 变宽语义表格 | 阶段七十一,完整行/合并行组、原子嵌套格、实际字段及图文链接 | 行内格拆行续排见阶段七十五;纵向行内 owner 已接入;递归块子树与组件网格独立 |
| 单向页码字段 | 阶段七十三,实际呈现 PAGE、准确声明 PAGES 及严格完成核对 | 未知总数推断、未来引用/脚注和分节编号独立 |
| 已有签名字节校验 | 阶段七十二,显式 CMS 回调、准确版本范围、未签追加及篡改区分 | 证书信任/撤销/时间戳、DocMDP 修改符合性和 PAdES/长期验证独立 |
编辑、导入与转换推进顺序
下表保留早期推进单元及其当批验收范围;后续原生 DOCX、PDF 编辑和标准扩展已另有闭合记录,当前待办以本文开头和缺口表为准。
具体状态、分项验收和策略契约统一维护在缺口表,下表只组织前置关系。先区分语义模型的编辑/重新导出与已有 PDF 页面/对象处理;不新增占位 API,不承诺任意格式无损往返。
| 顺序 | 对应缺口 | 交付单元与前置条件 | 完成门槛 |
|---|---|---|---|
| 8 | GAP-15/16 | 已完成阶段四十四:不可变编辑、跨运行查找替换和共享策略/报告基础 | 25 项新增行为;3 页双渲染、2 个 DOCX、4 个 Web 输出、预检/实际对账及新隔离调用方通过 |
| 9 | GAP-17 | 已完成阶段四十五:离线 CommonMark/GFM 子集导入,与严格模板独立 | 19 项新增行为;独立源解析、导入后编辑、2 页双渲染、2 个 DOCX、4 个 Web 输出及新调用方通过;代码/引用等按明确策略报损 |
| 10 | GAP-18 | 已完成阶段四十六:离线元素/属性、有限 CSS 级联与显式资源 | 22 项新增行为;双跨度/两层块格、2 页双渲染、2 个 DOCX、4 个 Web 输出、损失对账及新调用方通过 |
| 11 | GAP-19 | 已完成阶段四十七:统一真实导入→编辑→导出、确切编码与共享策略 | 21 项新增行为;4 页双渲染、2 个 DOCX、8 个 Web 输出、三阶段损失对账及新隔离调用方通过;未编辑内容也完整检查 |
| 12 | GAP-12.1/12.2 | 阶段四十八当时验收原包普通文字编辑与样式级联;保留未编辑目录/评论/修订/控件/表单和三类页眉 | 当批 24 项新增行为、独立结构/渲染及调用方通过;后续阶段一百零三已完成两项原生语义、Word 编辑保存回读和页面视觉验收,本行不表示仍待完成 |
| 13 | GAP-10.1~10.4 | 阶段四十九页级编辑、五十被动对象、五十一关系重映射、五十二渲染提取及五十三优化的明确子集已验收 | 页面框/坐标、字段外观和关系、解码像素/实际指令预算、无损与有损结果、独立结构/双渲染及新调用方已核对 |
| 14 | GAP-10.5 | 阶段五十四真实命中范围替换及五十五新建图片 PDF 的区域脱敏分别已验收 | 原编码范围及未命中位置保持;敏感文字/图片像素清除且不复制源对象/历史;脱敏的全文光栅化损失明确报告 |
| 15 | GAP-20 | 阶段五十六完成受限 PDF→可编辑模型→DOCX/HTML/Markdown/重新布局 PDF | 逐行段落/字号标题、显式表格、流图片、实际编辑、预检对账、独立结构/双渲染及新调用方通过;一般原版重建/OCR 排除 |
以上编辑、导入与转换批次已按明确子集依次交付。GAP-14.1 的实际语料、损失对账、预算和失败原子性贯穿各项;更广格式和排版恢复仍按缺口表保留边界。GAP-11 的签名及标准工作保持独立:新增编辑操作先判断签名影响,缺少受支持处理契约时失败,不用损失策略绕过权限或签名边界。
历史交付单元
以下阶段说明保留当时的实现边界与推进决定,不作为当前未完成清单。后续验收可能已关闭其中的限制,最新状态以缺口表和本文当前状态表为准。
| 单元 | 对应缺口 | 交付行为 | 验收门槛 |
|---|---|---|---|
| 文字一致性 | GAP-08 | 原文簇在缺字替换后保持原子;续行继承双向方向;连字与测量一致;固定字体多脚本语料 | 两条排版路径的来源/几何回归;所有新页双渲染;逐工具记录提取、查询、选中文字和矩形的实际结果 |
| Markdown 编写 | GAP-07 | 严格离线子集编译到既有模板;变量按纯文本绑定;显式图片注册 | 语法/损失拒绝、预算、取消、零外联、借用 Reader;PDF/DOCX 与隔离调用方 |
| PDF 静态页处理 | GAP-10 | 独立适配器检查、提取、按零基页选择复制及合并;显式密码/解密复制 | 第三方类型隔离;输入/解码/文本/输出预算;交互和签名严格拒绝;失败原子性;独立解析、渲染与调用方 |
| 逐属性文字样式 | GAP-04 | 六项具名覆盖/逐项恢复、作用域与网格快照,保持旧完整样式 | 阶段二十三已验收:490 项测试、6 页新输出、22 组历史回归与隔离调用方 |
| 单向固定列长表 | GAP-09 | 一次性行源、逐行测量/逐页绘制、同步 PDF、扁平摘要和失败资源所有权 | 阶段二十四已验收:552 项测试、8 页新输出、23 组历史回归、隔离调用方及 7 组独立 JVM 容量/退出清理 |
| 语义列合并 | GAP-12 | 模型 columnSpan、共享分页/字段/链接、Java/XML 绑定和标准 DOCX gridSpan | 阶段二十五已验收:592 项测试、8 页新输出、24 组历史回归、新隔离调用方;Word 保存回读边界单列 |
| 语义跨行合并 | GAP-12 | rowSpan/二维网格、全覆盖行、确定行高/连通组、最终字段/链接和标准 vMerge | 阶段二十六已验收:641 项测试、7 页新输出、25 组历史回归、新隔离调用方;原生 Word 读取/字段更新与探针收尾失败分列 |
| 多段格与原子内表 | GAP-03/12 | 链式 Paragraph/Table、两层表深、全树 ID/预算/来源、字段/链接及标准 p/tbl/p | 阶段二十七已验收:694 项测试、6 页新输出、26 组历史回归、新调用方和独立 PDF/A;递归续排/Word 保存单列 |
| XML 可读块格 | GAP-07 | 直接 p/table/p、格默认值、全分支校验与 Each/Rows 副本内引用 | 阶段二十八已验收:711 项测试、7 页新输出、27 组历史回归、新调用方与独立 PDF/A |
前三单元及 XML 四类字段/一级编号/被动图文外链,已完成阶段二十二。后续依次验收逐属性样式、普通文字单向长表、双跨度和两层原子块格;阶段二十八进一步接入可读 XML 格结构。这段是阶段二十八时的推进记录;其中纯富文本长表、主题、递归 XML 及 PDF 目标均已有后续验收,不再据此重复列为待实现。
依赖与后续单元(当前状态)
| 单元 | 前置条件及拆分依据 | 完成条件 |
|---|---|---|
| 属性级联与主题(GAP-04) | 已验收:六项显式状态、局部恢复、Java/XML 主题、全局/分域颜色和字体角色级联及固定页区/图层主题 | 保持完整样式快照和真实字体;不把已经完成的主题目标继续列为待设计 |
| DOCX 嵌套(GAP-03/12) | 标准 OOXML 双跨度及最多 16 层递归语义已验收;阶段一百零三的四层组合源贯通浮动对象/文本框、页区和 Word 实际编辑保存回读,4 页原生页面及 PDF 视觉补验完成 | 变宽递归子树和组件网格已由 GAP-03.1 完成,GAP-12.1/12.2 明确子集均闭合;不承诺任意外部文件兼容或 Word 与 PDF 同分页 |
| 声明式模板(GAP-07) | 已验收:变量/条件/循环、字段和编号、递归 include/动态目标和 URL、源码 ZIP 与资源保存 | 文档 CSS 布局由 GAP-18.1 独立验收,设计器归 GAP-13;不重复计入模板缺口或承诺完整浏览器功能 |
| 通用 Markdown/HTML 输入(GAP-17/18,细化 GAP-07) | 先制定语法/元素/属性/CSS 子集、级联、资源与 GAP-19 损失契约(明确子集已由阶段四十五/四十六验收);保留严格 Markdown 模板行为,不借助浏览器隐式布局或外联 | 每个接受的结构有语义映射,未知内容按明确策略处理;资源离线;解析/展开预算;公开子集样本及独立输出 |
| 有界长表源(GAP-09) | 已验收单次语义格、递归嵌套、owner 拆分;显式重放提供采样自动宽、未知总数、未来引用、目录书签及组脚注 | 同步消费、摘要一致性、取消/关闭、旧目标与预算均有证据;可选 PdfSpoolBackend 限制单页对象并使用磁盘索引,普通 PdfBackend 保持原契约 |
| 持续容量(GAP-09) | 阶段九十九完成布局/真实 PDF/重放各 1k/10k/100k 行 64 MiB 堆,12 轮成功/失败/取消恢复和双 JVM 并发;另复核活动临时盘与全部 100k 源行 | 分录观察堆、进程工作集/私有字节、句柄、吞吐和临时盘;退出自有临时项为 0。只证明所列有限容量,跨平台仍归 GAP-14.2,不承诺无限期无泄漏 |
| 无障碍 PDF(GAP-11) | 阶段九十六已接通 PDF/UA-1 语义树、模型桥、文字映射、图像替代文本、表头关联和已有标签处理;路径加 ActualText 不等于 PDF/UA | 三份最终文件独立合规及完整阅读顺序通过;实际辅助阅读器已验证生成样例和已有标签文件两页及修复后模型第一页;四页模型余页的读屏未捕获,明确保留证据覆盖限制,不宣称未执行检查通过 |
| PAdES/长期验证(GAP-11) | 阶段九十六已完成显式离线信任、撤销、RFC3161、DSS/VRI 和 LTA 续期;不读取系统信任库或隐式联网 | B/T/LT/LTA、三档认证证据更新、篡改/失效证据拒绝和独立 pyHanko 验证已完成;调用方提供密钥及证据,通用阅读器权限执行不由库保证 |
| 多场景样例(GAP-13) | 每个行为里程碑之后复测完整调用代码与所有输出页 | 覆盖报告、静态表单和长表,记录字体、页区、失败边界及完整调用成本 |
| 可视化设计器(GAP-13) | 先固定声明式语法、诊断来源和预览契约;设计器是独立模块 | 编辑、预览、保存/重新载入和导出闭环;不把示例页面当作设计器 |
| 发布检查(GAP-14) | 候选 API、固定语料/安全门禁及 Windows Word/PDF 实际交互保持既有证据;0.1.0-rc.1 已完成正式签名、Central 上传、82 个制品远端核对及 16 个库与 BOM 的隔离消费,见发布记录 | 稳定 API/稳定版、更多平台/浏览器交互和新增发布工作流的 GitHub 实际运行仍未验收;RC 发布不关闭完整兼容矩阵 |
每批完成后更新实际证据和下一入口。某个单元失败时先修正,不降低阈值或自动刷新视觉基线;新增组合导致回归时重新打开已验收项。
阶段三十六已补齐模板内静态页面配置:937 项测试、6 页双渲染/逐页复查、13 组独立检查及新调用方通过。顺序调整依据是模板纸张配置的自包含需求,复用 PageSettings,不依赖完整主题。阶段三十七按固定页区角色设计完成引擎角色映射修复:948 项测试、4 页双渲染/逐页复查、新调用方及 17 组独立检查最终通过;首轮原生异常退出与单独重跑证据保留。现有 StyleScope/FontScope 不重建,下一优先切面为主题/XML 默认角色和颜色,再推进标准富文本页区;语义表格页区仍独立设计。
合并、嵌套与长表的源码前置条件(历史设计)
本节至文末按阶段保留历史设计和当批证据;“首版”“下一单元”和拒绝项均属于对应阶段。当前能力及剩余目标以缺口表、本文当前状态表和最新 API 为准。
Table/TableRow/TableCell 仍是完整快照;阶段二十五/二十六的双跨度与连通组已在阶段二十七接入两层原子 Paragraph/Table 格内容。全树 ID/层级来源、共享预算、Java 绑定、最终字段/链接和标准 DOCX 已贯通,评估依据保留在块格与原子内表设计。下一切面用可读 XML 表达同一受支持树,并在编译阶段验证全部分支。纵向合并/块子树仍整组原子,超高失败,拆组及完整递归续排另验收。
长表源不能沿用 prepareTable 的完整模型及全量塑形。首版配置固定列宽、有限表头、普通文字与显式字体,同步拉取一次性源,只保留表头、当前页和一个待放置行;行源前后、测量、输出均检查预算与取消。每页即时交给 LayoutPage/DisplayPage 同步消费,返回计数而非保存全部页。源行/格/码点、重复表头行、页、命令、警告及输出字节分别累计。当前 TableCursor 只是全量模型的区域分配游标,不能当作数据源流。
首版拒绝需要未来信息的总页数、目录/未来引用、自动列宽、末页平衡及脚注;后续只有显式稳定快照或磁盘 spool 才能二遍处理,不能假定数据库重复查询一致。源所有权、失败关闭、原子目标保持及临时文件清理须有行为验收。模型/布局/Display List 可逐页释放,不代表 PDFBox 的页树与 COS 对象也不随页数增长;完整 PDF 内存界限必须另有实现和独立 JVM RSS/私有字节证据。
长表源的已验收边界
2026-10-16 复评定位到完整文档路径仍保留全部 Table rows、MeasuredRow、IR 和 DisplayPage,区域 Cursor 也持有 Table/MeasuredTable/suffixHeights;DocumentEngine 在完整布局后才交后端。因此阶段二十四另建单向路径,没有在旧模型外包装 Iterator。PdfBackend 仍由一个 PDDocument 保存全部 COS 页树,TEMP_FILE 不改变这个累计对象边界。
阶段二十四已同时打通并验收以下四层,完整证据见专项验收:
| 层次 | 实施边界 | 可观察验收 |
|---|---|---|
| 一次性源 | 独立固定列规格和有限表头;导出时才打开源工厂,库关闭创建的源;不实现普通 Block 或偷偷收集完整 Table | 第一页交付时只消费该页和最多一个待放置行;成功、读取失败、取消和 close 失败分别验证 |
| 分页与绘制 | 独立逐行测量/分页,保留表头、当前页及一个待放置行;DocumentPainter.paintPage 保留物理页索引,不伪造从零开始的单页 DocumentLayout | 保留实际源行号和 UTF-16;每页重复表头,正文有序唯一,超高行失败,无尾部空页 |
| 后端接收 | 同步 accept/finish/close 协议,无默认全量收集器;PDF 即时转换并释放接收的 DisplayPage | 累计页/命令/字节预算;接收失败后停止读取;借用输出不关闭;明确 PDFBox 对象仍随页数增长 |
| 编排与返回 | 独立长表链路,返回有界计数摘要;诊断回调同步送出;保留同目录临时文件和原子移动 | 字体策略和源行/列诊断;源/诊断/后端失败及取消时关闭一次、保留旧目标并清理临时文件;上下文 finally 恢复 |
首版只接受普通文字格及整行移动,拒绝图片、字段、外链、合并、嵌套、自动列宽、混合正文、连续分栏、未来引用、总页数、脚注、交互、DOCX 及依赖总页数的页区。PDF 加密/归档/签名单独接入。未知总行数只报告已处理计数,不生成虚假的总体百分比。
本批容量已在独立 JVM 中分别运行布局丢弃页与实际 PDF 的 1,000/10,000/100,000 行,再运行 64 MiB 堆的 100,000 行布局控制组。后者成功;512 MiB 组的 100,000 行布局/PDF 分别用时 3.023/325.281 秒,观察堆峰 47.547/81.915 MiB。源、页、EOF/关闭与退出临时文件数/字节均通过独立核对。采样脚本修复 PS5.1 空退出码后从新 ID 完整重跑;计时包含字体初始化,观察堆不等于强制 GC 后的保留堆。PDFBox 累计对象和长期稳定性仍需后续能力,GAP-09 因此保持部分支持。
语义列合并的已交付切面
阶段二十五已交付 columnSpan,同步接入模型、测量/区域游标、最终字段/外链、Java/XML 绑定和 DOCX gridSpan;下列为当批契约及独立验收。阶段二十六进一步接入 rowSpan/vMerge,完整二维位置改用 TableGrid;递归格内容仍独立,不能把组件 GridTable 或 PDF 矩形当作标准 OOXML 语义。
- TableCell 增加正整数跨度并保留旧 2/3/4/5 参数构造,默认 1;Builder、rich/mixed、toBuilder 和绑定复制须保留跨度。record 解构 arity、反射及二进制兼容变化要明确,不能声称完全兼容。
- TableRow.cells 仍为实际内容锚点;统一网格定位。三列
[A(span=2), B(span=1)]中 B 的源下标为 1、物理列号为 2,IR/异常使用后者,取源不能直接 cells.get(2)。每行用安全减法验证完整覆盖,缺省列数按跨度和推导。 - 保留现有覆盖槽结构预算;源文字/图像按真实锚点只计一次。合并格按覆盖列宽之和扣一次 padding 测量;整行、拆行和短区 Cursor 都要适配,consumed/offsets 随当前行锚点数变化。只接受 fixed/fraction 的跨列,跨越 Auto 的合并首批明确拒绝,避免跳过探测造成静默几何错误。
- 字段/外链按统一网格定位取真实源,保留逐次表头页值、UTF-16、完整行来源、图片与链接矩形。两个语义插槽重建路径和所有示例诊断也须同步。
- Java 动态行与 XML 静态/动态格支持显式 column-span,快照与展开保留跨度并验证覆盖。DOCX 标准 tcPr/gridSpan 写入/导入须校验容器、重复、属性和值,并按实际跨度恢复网格;当批未包含的 vMerge 已在阶段二十六补齐,内表仍拒绝或显式报损。
- 单向 StreamingTable 首版继续只接受 span=1,模型及核心须显式拒绝新跨度,不能由锚点数恰好等列数而误接受。
验收已覆盖两种锚点数量交替行、末格字段/图文外链、重复表头/自动列宽拒绝、拆行/短区/网格语义组合、绑定后跨度、原始 OOXML 结构及严格导入。8 个新 PDF 页独立双渲染并逐张查看,阶段二十四单向源及 24 组历史验收通过。Word 读取/字段更新成功,保存回读仍按实际结果单独登记。
语义跨行合并的已交付切面
阶段二十六已完成二维覆盖和真实锚点定位,允许完全被上行覆盖的空锚点行;固定/比例列测量一次,按单行约束、跨度/行/列确定顺序分配合并高度。跨越的行边界组成连通组,首批整体移页/移区,表头完整重复;超高组或 rowSpan 与显式拆行组合明确失败。字段、图文链接和诊断归属于原始锚点,不复制内容到覆盖行。
DOCX 使用标准 vMerge restart/continue,精确验证整个覆盖列区间;拒绝孤立、宽度不匹配、重复、跨表头及非空 continuation。Java/静态 XML 保留跨度,动态单行原型首批拒绝跨行跨度,避免一个循环实例占用下一个实例。验收覆盖 49 项新增行为、全部 7 页新输出、标准去元数据 OOXML、新调用方和 25 组历史回归。Word 原生读取/页码更新有独立证据,原探针的假设与收尾失败状态保留,未尝试保存或导出。跨页拆分纵向合并组、递归格内容与单向长表合并另行推进。
已交付:有界原子块格与 XML
阶段二十七按块格与原子内表设计完成互斥内容模型、全树 ID/来源与共享预算、Java 模板、核心 IR/测量、最终字段/链接及 DOCX;阶段二十八完成直接 XML p/table/p。仅接受 Paragraph/Table 和两层表深,整个父连通组原子移动。未知 Block、格内 Note/分节、含块格的 Auto/拆行、重复父表头中的块格及第三层内表明确拒绝。
两个阶段均完成公共样例、新隔离调用方、全部新页独立解析/双渲染/逐页检查,以及标准 OOXML/去元数据输入的独立断言。Word 保存回读、递归续排与纵向拆组继续独立,不从原子子集推断完成。
已交付:有界纯富文本长表
依据 ADR-0036,复用 TableCell/StyledSpan 与既有同步逐页路径。支持局部文字样式、显式真实字体角色和各组缺字策略;新增格/行运行额度,空运行计费,全行预检后塑形。链接、图片、字段、块格、合并与未来语义仍拒绝。
验收覆盖全仓构建、隔离调用方、独立全页检查和容量采样。新容量需独立记录富文本与普通控制,不套用阶段二十四的旧样本;PDFBox 累计对象、主题及长期容量仍开放。
阶段二十九验收已完成:732 项测试、6 页双渲染、28 组历史独立回归、新隔离调用方及 9 组 JVM 采样。首轮容量运行数手算已改为实际累计并重采。下一单元为编写时主题设计。
已交付:Java 与 XML 主题
阶段三十完成模型 DocumentTheme、Document/Documents 快照入口、六级完整标题、便利表格默认值和有界命名完整样式。753 项测试、9 页独立输出及新隔离调用方通过;继承、缺字与固定行框仍用既有共享路径。完整品牌主题与字体角色级联不在本子集。
阶段三十一已按XML 主题设计接入 XmlTemplate.theme 和 p/span 静态名称。全部分支在编译时检查名称,保留 XML 独立 body/cell 范围、显式字号行距规则及原子格冲突拒绝;780 项测试、4 新页、隔离调用方及 12 组独立检查通过。阶段三十二进一步验收可编辑字段显式样式、零框修复与旧默认,保留 Unicode 提取和固定字号溢出边界。平面离线片段复用已由阶段三十三验收:853 项测试、4 页双渲染/逐页复查、12 组独立检查与新调用方。下一单元为目录标题/条目/页码样式,页区默认与完整品牌主题仍开放。
阶段三十四已验收目录标题/页码完整排版及标题/条目/页码颜色,旧默认、声明意图、最终引用、缺字/预算和取消保持。下一独立单元按XML 编号设计把 XML numbered 扩为已有模型的 1..9 级,复用现有计数与 DOCX 路径;动态父完整性在实际展开后的布局/导出阶段验证,不另造计数器。
阶段三十五已验收XML 1~9级十进制编号、祖先重置、各列表隔离、循环片段完整引用与原生DOCX九级规则;899项测试、4页双渲染/逐页复查、12组独立检查和新调用方通过。下一优先切面为GAP-04页区默认/完整主题:先区分固定页区的组件样式继承与模型编写默认,继续保留页区预留、最终字段与诊断;复杂递归续排和流式更多语义仍按前置条件另行验收。
HTML/Markdown 输出已完成阶段四十三:模型直出、自包含资源、逐功能动作、共享预算与隔离调用方;API逐项登记损失。HTML/CSS 输入、设计器、更广主题与递归续排保持各自开放范围。
已交付:递归语义续排与连续富文本
阶段五十七将显式拆行扩展到 Paragraph/Table 格与纵向 owner,各层开关独立、表头逐片重复,原始格块序号跨页保持。模型、XML、HTML 和 DOCX 共享 16 层深度上限;默认原子行为保持。RichTextComponent.flow 支持连续区域,ContinuousColumns 增加有界公共栏高平衡。变栏宽、流式源更多内容及更广主题继续按独立契约推进。
已交付:递归片段与动态目的地
阶段五十八补齐最多 16 层无循环 include、组合命名、父到子目标与当前副本重定位。动态 href 在词法数据范围绑定并校验最终协议/凭据;动态 target 是显式完整最终 ID。源码解析缓存、逐次展开和目标预收集均保留预算及取消。没有隐式外联、URL 编码或动态 include 名称。
已交付:变栏宽文字与混合流
阶段五十九补齐权重栏宽、普通/富文本/OpenType 逐行换宽、混合流及字体/样式作用域。保持原文 UTF-16、完整行、逐区内边距、整块图片和有界平衡。阶段六十三进一步完成最低多行策略、有界全源重测及实际分配验证;1,312 项测试、12 页独立双渲染与新调用方通过。阶段七十一进一步接入原子语义行、合并行组和嵌套格的变宽区域;不同宽度的半行/递归子树与组件网格继续独立,流式源更多内容继续推进。
已交付:全局主题外观
阶段六十补齐全局字体角色/颜色、正文/标题/单元格/页区逐属性覆盖和恢复;Java 便捷入口、组件与 XML 在编写时固定值,显式完整样式优先。1,286 项测试、4 页独立双渲染及新隔离调用方通过。首页/奇偶变体已由阶段六十一验收:模型/XML/DOCX 保留 selector 与显式空对,显示页码选择和最大预留、1,297 项测试、16 页双渲染及新调用方通过。XML 背景/前景与独立主题进一步由阶段六十二验收:1,309 项测试、5 页双渲染及新调用方通过;固定定位与遮挡、最终字段、继承清空和各目标明确损失均已检查。更多复杂布局及流式语义继续推进。
已交付:单向固定列横向合并
阶段六十四完成表头/正文横向合并、逐行完整覆盖、真实物理列与一次内边距。锚点源计数、覆盖槽预算、重复表头、最多一行预读及输出后失败的原子保护均有行为证据。全仓 1,316 项测试、4 页双渲染及新隔离调用方通过;普通/纯富文本单向源和普通列合并独立回归通过。纵向合并、图片/链接及未来语义不由此扩展。
GAP-03/08/09/21:原剩余清单已完成
本轮按原剩余清单统一推进,未增加编号或删减关闭条件:变宽递归格/组件网格与轮廓锚点;可变/CFF2/彩色字体、方向塑形与静态 CFF 原生 PDF;单次语义长表、显式重放与磁盘索引 PDF;CMYK/ICC/专色、混合/透明组、渐变/图案和 SVG 本地资源。当前接口见变宽续排、轮廓浮动、原生文字、语义重放及高级图形。最终构建、独立输出及容量结果统一登记在阶段九十九。
历史阶段中的“下一项”及“仍开放”描述保留当时范围,当前状态以缺口表和最新验收为准。GAP-13 设计器已由阶段一百零八验收;跨平台/阅读器矩阵及正式发布继续归原有独立缺口;DOCX 与 CSS 的当前状态见阶段一百零三/一百零四和缺口表,不把已验收内容重复加入后续队列,也不推断任意外部文件或完整浏览器兼容。