跳到主要内容

Aspose.Words 26.9.0 全能力对齐计划

本页保留迁移前采集的 Aspose.Words 26.9.0 对照记录。benchmarks/ 中的版本、模块路径、计数和验收结果属于原始快照,不表示 DocKiln 0.1.0 已重新验证。商业基准使用 aspose.words;本项目使用 dockiln,运行时不依赖商业包。Markdown/TXT 能力及旧导入入口已移除,当前使用范围以 转换与安全 为准。

本计划覆盖固定基准的公开能力。Python 生态台账作为实现参考;完整 Word 引擎、格式、 标准、DOM 和布局能力不能因成本高而自动排除。公开清单与局部实现持续更新, 不表示全能力实现或验收完成。只有固定版本所有能力逐项验收,或用户明确 批准某项豁免后,才能宣布目标完成。

已确定基准​

  • 用户选择:商业基准为 Aspose.Words for Python via .NET 26.9.0,Mac/Python 3.13; DocKiln 目标为 Mac/Python 3.14;先使用官方试用包,没有应用许可证。
  • 本机:macOS 27.0.1、arm64;隔离环境实际为 Python 3.13.15 和 3.14.7。
  • PyPI 包要求 >=3.6,<3.14,不能把强制安装到 3.14 当作有效官方基准。
  • 官方包导入、DocumentBuilder.writeln、DOCX 保存已实际运行;产物确有试用水印。 试用文档大小限制、水印及其新增图像/页边内容必须单独记录;不能从试用小样本推断 无限制的大文档表现,也不能把水印差异当作 DocKiln 的错误。
  • 包摘要、文档抓取摘要、环境和基准采集时的 CI 记录见 基准记录(本地复验材料,未公开)。网页是滚动文档;版本边界以 26.9.0 安装包及实际行为为准。API 首页、许可说明、26.9 发布说明的 URL、抓取时间和 摘要保存到快照登记(本地复验材料,未公开)。原始 HTML 快照 ZIP 保留在本地,本次仓库材料不复制网页全文;其他类型/成员页面及完整文档归档仍需补齐。
  • 两套运行器在各自隔离环境中执行;历史采集在仓库外进行以避免旧命名空间遮蔽。当前 DocKiln 使用独立命名空间。没有反编译商业 二进制或读取其实现;能力发现来自公开声明、文档和合法取得的试用包实际输出。

清单结构与完整性门槛​

安装包声明清单(本地复验材料,未公开)包含 30 个产品模块、8,065 个声明项, 排除了 __nuitka 等打包工具目录。包括类型、枚举、枚举值、属性访问器、方法与构造器; 同名方法的重载声明逐一保存;集合下标等公开特殊方法也纳入清单,不能只保留构造器。 清单生成器是 inventory_commercial_api.py,输入为固定包随附的 .pyi,每个文件保存 SHA-256。公开声明中 chart 文档字符串存在不合法引号,解析时仅 去掉文档字符串,保留声明;没有修改安装包。

这不是完整行为验收台账:默认值、异常、回调、协议、可接受的参数组合及格式方向尚待展开。 运行时接口与继承记录(本地复验材料,未公开)实际遍历了 32 个可见模块、 799 个导出类型,按实际 MRO 记录成员来源。Document 可见的已筛选成员为 159 项;这包含 继承接口,不代表 Document 的行为已经验证。

lowcode 在随包声明中缺失,但 26.9.0 运行时实际导出 25 个类型,且这些名称与 官方模块文档吻合,必须 补入范围。其内建方法没有可提取的 Python signature 或 docstring,重载需要文档和行为探针 继续补证。xattr 同样可导入,但其公开支持状态未确认;保存观察记录,不能擅自当成完整 产品接口,也不能把未确认项视为已经关闭。

合并能力台账(本地复验材料,未公开)目前 26,208 条记录,将声明、 继承接口、运行时额外导出与已安装 DocKiln 入口(本地复验材料,未公开) 对照。21,790 条有公开声明依据,4,418 条仅有运行时观察、支持范围待确认。534 条匹配到 同位置名称;这不是兼容能力数量或完成率。未匹配只说明等价公共名称缺失,不能据此断言 内部功能不存在。台账保留逐成员行为、具体依赖和验收条件未完成状态。 运行时枚举记录(本地复验材料,未公开)已取得 LoadFormat 28 项、SaveFormat 42 项、NodeType 39 项;枚举存在不等于每一种加载/保存方向在 Mac 上可用。

完整运行时枚举快照(本地复验材料,未公开)通过 Enum.__members__ 保存 3,548 个名称/数值及 40 个别名关系;包含声明中的 251 个枚举、文档与运行时均确认的两个 lowcode 枚举,以及一个没有公共值、支持状态未确认的 xattr 枚举。dir(Enum) 会遗漏别名, 只筛大写还会遗漏混合大小写名称,所以不能据早期大写名清单宣称全量。

当前公共路径数值对照(本地复验材料,未公开)记录 227 个名称的 整数一致,0 个数值不同,3,321 个对应入口缺失或不是整数。缺失不表示内部完全没有相关 枚举;同名整数一致也不能证明对应功能可用。NodeType 当前为普通常量类,与可构造的商业 IntEnum 的协议不同,不能只比较 16 个现有常量就判断类型兼容。

每个声明项继承 JSON 的 capability_defaults;合并台账用 record_defaults 复用同一字段。 除已关联的 DOM 局部观察外,当前逐项行为为 not_measured,实现记录区分名称存在/缺失但行为未验证,交付为 not_started。后续逐项覆盖这些字段:

字段必须记录的事实
baseline_behavior版本、平台、输入、默认与显式参数、结果/异常、试用干扰
implementation / gap实际实现入口、支持程度、与基准的具体差异;不能凭同名判定兼容
dependencies / approachDOM、格式、布局、字体、外部服务依赖;独立实现方案
samples / validation固定合法样本及哈希、执行命令、原始产物、独立解析/渲染断言
exit_criteria / limits每项可判断的完成条件、容差、环境限制、未验证范围
delivery对应提交、安装包、实际 CI;未执行保留未完成

继承图现已按运行时 MRO 展开;下一步核对声明存在但运行时缺失、仅运行时暴露和外部基类 接口的公开支持状态。每个类型必须覆盖其最终可见接口,构造器/重载/属性写入分别验证。 格式与选项应增加行为行,不能只用类型行代替数千项参数组合。计数的用途是检查遗漏, 不作为功能完成百分比。

实施顺序​

阶段内容与依赖阶段退出条件当前状态
B0 固定基准与完整台账扩展公开声明、继承/运行时导出;核对版本文档;逐项映射当前实现与格式方向;保存可复验语料每项有行为/差异/依赖/方法/样本/验证/退出条件/限制/交付字段,未知项明确登记已固定环境并取得声明、运行时继承和名称对照台账,逐项行为与现状审计未完成
B1 安全与内容完整性加载资源边界、失败原输出保留、恶意输入、隐藏内容、文字/图像/关系丢失;与基准逐项比较支持内容无静默损失,拒绝和诊断可验证;兼容行为与安全要求冲突单列决策旧 Markdown 输出仅保留为历史证据;DOM 保存边界已有局部验证,迁移后整体未验收
B2 完整 DOM 与核心格式所有节点、集合、生命周期、顺序、所有权、跨文档导入、克隆;完整格式继承;统一 load/DOM/package/layout 映射实际编辑→保存→独立回读→渲染验证,复杂节点/关系不被丢弃;所有受影响接口验收现有原包 DOM 为受限基础,完整对齐未完成
B3 其余公开功能与布局所有固定版本模块;字段、列表、图形/图表、数学、邮件合并、报表、比较/修订、签名、宏、AI/服务接口;全部格式/选项与分页/字体按完整能力台账逐项通过;外部依赖或 Mac 限制保留缺口,不能自动豁免未开始完整对照
B4 测量后优化与发布在行为固定后测量时间/峰值内存/包体积;保持内容、结构、几何和像素结果同语料/同环境对照;安装包和 CI 全验收;无未经批准的剩余能力缺口原生态优化证据仅作历史参考

阶段可为前序缺口补证,但不得为追求性能跳过安全、DOM 或布局差异。重大问题按严重性 修复共享根因和全部调用路径,不以新增测试数量或一处小修改定义交付阶段。

DOM 首轮差距映射​

依据 当前 DOM 指南与 src/dockiln/dom,保留已有原包编辑优势, 不删除限制检查来冒充完整支持:

主题当前已存在必须补齐与验证
节点与顺序Body/Paragraph/Run/Table/Row/Cell/HeaderFooter 等视图;未知 XML 保留;有序子节点、所属文档与 part对照全部 NodeType/公开节点类型、集合、访问者、查找与生命周期;读/写/保存保持混合顺序
结构操作受限简单节点插入、移动、删除、复制;合法父子和循环检查跨文档/part 导入;图片/链接等关系及样式/列表 ID 重映射;复杂范围和修订;非法操作在修改前拒绝
文本与范围普通 Run 编辑、普通段落替换和范围格式;过期范围检查字段/超链接/内容控件/书签/批注/修订/换行等结构的可编辑语义;真实范围与保存后的行为
格式继承部分直接格式;13 个字体布尔属性、普通字号、段落对齐的有效值与样式链校验完整属性的未设置/继承/显式状态;字符/段落/列表/表格/主题映射;读写不能擅自物化有效值
模型一致性原包 DOM 和转换 LDM 各有能力建立明确同步/失效机制,避免编辑原包后转换仍使用旧 LDM;节点、关系、布局实体与来源之间可追踪
诊断与保留复杂操作拒绝、原包保留报告、转换损失诊断每个支持声明与真实输出对应;不支持项与错误无静默降级;不能用 ZIP 保留证明渲染或字段结果正确

这只是主题级差距图,必须在 B0/B2 展开到逐个公开成员,不作为 DOM 完成证据。

固定语料和验证政策​

保留已有 C01–C12,加入每个格式方向、节点、重载/默认值、字段/修订/宏/签名/图表/数学等 必要覆盖,既有 12 类不是上限。样本须合法生成或取得,记录工具版本、原件哈希与许可来源。 固定保存输入文件,不能只留随时间变化的生成脚本。负面和恶意样本与普通样本分别建档。

每个测试保留商业原始输出和 DocKiln 输出。针对文字顺序、节点、关系、样式、字段值、 图像原件、格式选项做独立断言;布局比较页数、页/栏/区域、位置、尺寸、字体、链接区域和 可见像素。容差由具体样本和度量理由决定,不用统一宽松阈值掩盖错页或漏字。 需要原生工具时记录实际版本和产物,不把商业 Aspose、Word、LibreOffice 互相等同。

试用限制影响的长文档、布局、内容或功能保留“未验证”,待可用授权再验收;没有授权不是 能力豁免。外部服务或凭据不足时也保留缺口,不伪造输出或删除对应行。

复验与证据入口​

使用契约与限制统一见 DOM 指南和转换与安全; 逐成员实现状态与缺口以能力台账为准,下表只列复验入口。

材料用途
全量能力台账(本地复验材料,未公开)当前入口、具体差距、依赖及局部行为证据;未完成项保留
加载/保存观察(本地复验材料,未公开)固定格式方向及原始输出记录;返回文件不等于格式验收
样式编辑观察(本地复验材料,未公开)1482 次编辑前、编辑后、保存后及重开状态,36 次 Run 状态变化
字号词法与单位读取(本地复验材料,未公开)42 个值 × 直接/样式/默认值,126 个输入及 105 个官方保存/冷回读输出;独立 XML 复验。66 个正值目标 Run 字号已实现共享读取和模型往返,并经官方实际回读;三个 PDF 字号独立测量。此记录中的 22 个隐式样式默认值迁移见下项修复后的独立证据;损坏/非正数恢复、复杂文字与完整布局仍未验收
默认组与字号来源往返(本地复验材料,未公开)复用 87 个输入,348 个 DOCX/Flat OPC/模型 JSON 输出经独立 XML 和官方冷回读核对;缺失默认组不再成为空组,Run/样式字号与直接声明状态保留。21 个 PDF 普通字号独立测量;旧 JSON 无法恢复未记录的来源信息,完整字体来源、复杂文字和渲染仍未验收
字体 JSON 与粗体/斜体转换(本地复验材料,未公开)复用 745 个输入;1,490 个 JSON→DOCX/Flat OPC 输出经官方和独立 XML 回读,修复前的 194 个差异降为零。保留稀疏字段设置、Run/字符样式 b/i 直接声明,读取和写出基线复用 DOM 的类别组合规则。最终包专项 900 项、Linux 911 项、31 个示例通过。全套首次 10,318 项通过、2 项失败、2 项跳过,失败来自归档更新中的旧样本,两项在稳定归档上复验通过;未重跑整套。远端 CI 待核对;完整字体、表格上下文及布局未验收
隐式字号观察(本地复验材料,未公开)16 个段落/字符样式输入,区分缺少默认组、空组及显式/复杂字号
其余字体 Boolean 读取(本地复验材料,未公开) / 隐藏文字原生 PDF(本地复验材料,未公开)11 个属性、891 个自有输入;读取类别组合及隐藏渲染修复已通过本阶段专项验收。81 个官方试用 PDF 保存了目标文字可见性;其中 hidden-1-0-1-n 和 hidden-1-1-0-n 的 getter 为真而 PDF 显示文字,证明读取值不能直接充当渲染策略。独立复验入口为 verify_font_boolean_contexts,生成器为 probes/font_boolean_contexts.py;属性、81 个 PDF 可见性及模型 JSON 往返专项已通过;新增 32 个默认样式引用样本(本地复验材料,未公开)修复显式/隐式引用的四个渲染差异。隐式引用补丁全套 11,460 项通过、2 项跳过;后续 452 个隐藏格式往返输出(本地复验材料,未公开)将 20 个 getter、52 个可见性差异降为零,保留直接声明和隐式引用。最终来源修复安装包专项 2,608 项、Mac 全套(含示例)11,916 项通过、2 项跳过,Linux 专项 2,504 项通过。全套收集后新增的 Windows ZIP 元数据回归与 CLI 平台断言修正另经 830 项专项复验;远端 CI 待完成。完整字体、动态样式编辑、全部格式及全页面视觉等价仍未验收
样式段落格式观察(本地复验材料,未公开)27 个继承输入、108 次基本对齐编辑及官方原始输出
段落分页属性(本地复验材料,未公开)324 个非首段输入、1296 次样式/直接值编辑,24 次非法 setter 观察
分页渲染对照(本地复验材料,未公开)五个自有输入、10 个原生/当前 PDF;非首页面位置、字宽及黑色像素,完整排版仍未验收
段落数值格式(本地复验材料,未公开) / 渲染(本地复验材料,未公开)五个 pt 属性的层次继承、360 次编辑和 270 次错误观察;10 个普通字体 PDF 对照,完整格式仍未验收
段落间距边界(本地复验材料,未公开) / 极端 setter 未决项(本地复验材料,未公开)32 次间距边界编辑及保存重开;35 次极端 live getter 观察,非有限值仍不一致;有限缩进见下项
有限缩进边界(本地复验材料,未公开)54 次段落/样式编辑;54 个原生输出、10 个合法 hanging 规范化对照,经官方和独立解析重开;极端渲染未验收
逻辑缩进(本地复验材料,未公开)42 个逻辑/首行缩进别名与继承输入、168 次样式/段落编辑和重开;bidi getter 对照不等于双向排版验收
字符缩进生命周期(本地复验材料,未公开)8 种字号上下文分别执行直接保存和排版后保存,另有 45 次字符 setter、27 次类型错误;原生 DOCX 独立读取;只读字符 getter 已实现,setter、点值联动与渲染仍未验收
字符 setter 字体与样式上下文(本地复验材料,未公开)8 种字号 × 段落/样式 × 3 个属性 × 零/正/负值,144 次编辑及 144 次 TypeError;保留加载、编辑、保存后的活动对象和冷回读,独立 XML 核对点值及字符值。样式 setter 的点值在保存时才更新;DOM setter 和渲染仍未验收
字符缩进继承读取(本地复验材料,未公开)24 组 docDefaults/basedOn/直接值输入,包含显式零;原包 DOM 支持直接字符 getter、样式继承 getter,205 个官方保存输出可读取。setter、点值联动、编号/条件表格继承及渲染未验收
字符缩进继承编辑(本地复验材料,未公开)24 个相同输入在 Base/Derived/段落上执行零/正/负值 setter,216 次编辑、216 次 TypeError;六个字符/点值 getter 的加载、编辑、保存活动对象和冷回读均保留,冷回读的继承链用独立 XML 验证。仅为官方行为证据,SDK setter 和布局仍未验收
损坏 twip 输入拒绝段落缩进/间距、编号定义/覆盖和 dxa 表格/单元格边距拒绝非法整数及溢出,异常隐藏原值,保留原包和已有 CLI 输出;正常值及整数差值运算复验。官方损坏 twip 恢复行为未测;字号读取及不同的损坏值恢复见上述字号观察
字符单位模型往返(本地复验材料,未公开)已安装 wheel 经模型 JSON 写出 61 组 DOCX/Flat OPC,122 个输出按原生字符值独立读取;样式、编号及显式零保留,点值联动与渲染仍未验收
首段分页未决差异(本地复验材料,未公开)4 次编辑输出及 18 个试用对照(本地复验材料,未公开);首段变化伴随提示插入,持许可证对照仍缺失
保存状态观察(本地复验材料,未公开)商业试用包的内存/重开状态,区分水印内容
样式导入投影(本地复验材料,未公开)当前导入的基准、输入输出 SHA 与独立格式读取
Flat OPC 加载(本地复验材料,未公开) / 保存(本地复验材料,未公开)四种受测变体;复杂宏、模板与布局仍未全面验收
保存选项审计公开字段的实现路径、限制及验证入口
生态借鉴Python 同类项目的差别与吸收方向

执行 python scripts/verify_commercial_baseline.py 检查记录和产物摘要;执行 tests/test_commercial_api_inventory.py 检查台账与伪造证据拒绝行为。固定输入和输出保留在 benchmarks/corpus/,行为生成器在 probes/,被引用的专项记录保留在 benchmarks/。 回归测试、复验器和指南所需证据继续保留;无引用的旧阶段日志与一次性实验记录可从 Git 历史恢复。

安装包测试需在源码目录外运行,并检查实际导入位置、字体、许可和 typing 资源; 方法见 开发与安装核验。具体提交的跨平台结果以 GitHub Actions 为准,不能用旧 SHA 的成功代替。

其余十个 Boolean 属性的保存来源进入当前阶段:复用 810 个自有输入, 3,240 个直接/模型 JSON→DOCX/Flat OPC 输出(本地复验材料,未公开) 经官方 26.9.0 冷回读,getter 差异从 200 个降为零。前后原始输出与生成器已冻结; 独立 XML 复验检查 getter、直接声明和段落样式引用。读取、赋值、模型复制及写出 共享来源规则,源代码专项 4,083 项通过。最终安装包 Mac 全套(含示例)15,212 项通过、 2 项跳过,Linux 专项 5,798 项通过。全套结束后,归档以 storage 复用逐字节相同的 输出:总量从 21,256,900 字节降为 6,873,096 字节,6,480 个逻辑输出的原始字节不变; 归档与新增别名检查另经最终安装包 3,411 项专项复验通过。本阶段本地验收通过,远端 CI 待完成。 完整 Font API、动态样式编辑、其他格式与实际字体效果仍未验收。

此前 Windows CI 的 ZIP 元数据和 CLI 平台断言已修正;提交 2bcecca 的 四个平台检查均通过。 该结果不能代替后续字体阶段提交的远端检查。

可编辑 DOM 的字体布尔阶段补齐 Run 直接属性、样式读取/赋值、有效字体与文本范围格式入口, 复用已有验证和结构编辑保护。新增 11 个属性的固定编辑观测(本地复验材料,未公开) 覆盖 891 个输入、5,346 组官方 live 读取/赋值,以及 10,692 组当前输出的官方 DOCX/Flat OPC 冷读取,getter 差异均为零。原始输出和完整记录压缩在同一 2.7 MB 归档; 独立复验还检查输入/输出哈希、直接声明及段落引用。源代码与既有样式/范围集成测试 7,686 项通过;属性实现安装包(错误类型修正前)Mac 全套含示例 20,600 项通过、 2 项跳过,Linux amd64 专项 7,802 项通过。最终错误类型修正后的安装包仅变更 共享验证入口的异常类,Mac/Linux 各 9,472 项受影响调用路径与集成测试通过; 最终包生产模块与源代码逐字节一致,资源检查、全量证据复验、114 个本地文档链接通过。 本阶段受测 DOCX/Flat OPC getter、编辑、声明保存及非法类型错误的本地验收通过;远端 CI 待完成。 basedOn 链、表格/列表字体、跨文档样式翻译、 渲染与完整 Font API 仍为必需的未验收范围,不因当前 getter 一致而视为通过。

新增297 组非法赋值观测(本地复验材料,未公开)确认官方对 数字、字符串、容器及 None 均抛出 TypeError。此前 DOM 对非布尔值抛出 ValueError,264 组错误类型差异已在共享验证入口修正;Run 的直接字体允许 None 清除声明,另有 11 组接口语义差异。后者是当前直接格式接口的明确功能,不能把它描述为商业 Font 接口已对齐。完整 Font 接口的继承/直接格式契约仍待统一。

格式属性赋值的数据安全修复已实现:字体、段落格式及其样式句柄使用 Python slots 限制未声明属性,font.color = "FF0000" 等未实现属性、拼写错误、覆盖方法或排序常量 均在修改文档前抛出 AttributeError。31 个新增失败/往返用例与既有集成专项源代码 8,015 项通过,最终安装包 Mac/Linux amd64 各 8,748 项通过,覆盖格式编辑、范围操作、 跨文档导入和 DOCX/Flat OPC 保存。两个变更模块与安装包逐字节一致,资源检查通过。 该保护只消除静默编辑丢失,不表示颜色、字体选择等公开属性已实现,仍须继续补齐。

颜色进入下一阶段:256 个自有默认/段落/字符/直接颜色组合的原生 getter 对照发现 70 个差异,显式 auto 没有正确覆盖已继承的 RGB 色。单一白底样本还确认当前 PDF 目标字使用红色、官方试用输出使用黑色;已检查 PDF 颜色指令及目标区域实际像素, 排除“只有 getter 不同”的解释。须修复自动色的来源、层覆盖、保存及最终输出, 并继续校准主题色、背景对比和颜色编辑,不能仅用拒绝 font.color 代替实现。

自动色来源修复已通过本阶段安装包验收:读取、层合并、模型赋值/复制和写出使用 color_explicit 区分缺失与显式声明,Color [Empty] 的显式 auto 可覆盖已继承 RGB。 256 个颜色组合(本地复验材料,未公开)的 getter 差异由 70 个降为零; 直接模型及 JSON→DOCX/Flat OPC 的 1,024 个输出经官方 26.9.0 冷读取,无颜色差异。 独立 XML 复验还检查来源哈希、直接声明和有效颜色;源代码相关专项 1,823 项通过。 Linux amd64/Python 3.14 安装包专项 5,237 项通过(244.72 秒),包含实际黑色像素 及条件表格字体声明回归;另有 Windows ZIP 元数据模拟 1 项通过。 Mac/Python 3.14 安装包全量及 examples 共 21,959 项通过、2 项跳过、219 条警告 (847.81 秒);随后新增的元数据模拟及主题诊断复验各 1 项单独通过。 安装包资源及四个修改的生产模块与源代码一致性已检查,独立全量证据复验通过。 此记录不等于主题色、背景对比、DOM 颜色编辑或完整 Font API 已验收;远端 CI 须另行确认。

主题色修复进行中:32 个自有直接格式样本(本地复验材料,未公开) 分别保留原始 RGB/自动色 getter 与实际绘制色;单一 tint/shade 使用 HSL 亮度计算。 正式语料的组合修饰值使用原始回退色(自动色为黑色,显式 RGB 为红色), 与早期不完整主题原型的黑色观察不同,不应将原型结果泛化。 Microsoft 的兼容规范说明 描述 tint 优先的规范行为;固定商业版本的 getter 与绘制仍须分别对照。 当前 32 个 getter 差异由 16 降为零,文字抽取颜色差异由 20 降为零。 目标文字框的实际像素按主色比较,单通道容差为 1;32 个样本无超差, 另有16 个默认/段落/字符/直接格式组合样本(本地复验材料,未公开) 的 getter、抽取颜色和实际像素与基准一致。该度量不代表字形、位置、背景对比或全页面等价。 源代码主题读取、JSON、保存与组合修饰值专项 200 项通过(20.82 秒)。

不可变 SourceColor 保留颜色属性,SourceTheme 保留原始主题 XML 和关系信息; 直接颜色编辑清除旧快照。无关联资源的主题 XML 连同内容类型和文档关系已支持写入; DOCX 保留原始字节,Flat OPC 保留 XML 语义。 128 个直接/JSON→DOCX/Flat OPC 输出(本地复验材料,未公开) 经官方 26.9.0 冷读取,原始颜色、主题枚举及 tint/shade getter 全部匹配; 独立 XML 复验检查颜色属性、主题原始/等价 XML、内容类型、关系和哈希。 参考样式使用静态 RGB 以避免目标主题改变参考样式的颜色,参考模型未修改。 此前来源修复的源代码模型、缓存、Boolean 往返、颜色及参考样式集成 5,134 项通过; 当前代码更广安装包集成与跨平台复验仍待执行;本轮 Mac 安装包专项见下。 主题资源图已支持源码加载、JSON 及 DOCX/Flat OPC 保存;保留原部件数据和内容类型, 重映射内部关系,处理共享/循环资源并拒绝缺失资源、越界路径、悬空引用和重复关系。 资源与既有主题色/参考样式集成 231 项通过(43.98 秒,1 项字体替换警告); 补充资源目录重名检查后的资源专项 20 项通过(0.55 秒)。 真实 DrawingML 主题图片证据(本地复验材料,未公开): 官方 26.9.0/Mac Python 3.13.15 成功冷读原输入及当前 DOCX、Flat OPC 输出并再次保存; 六个文件的关系可达主题图片字节 SHA256 一致。此证据不证明图片绘制或完整主题资源兼容。 此前预检确实从 wheel 导入,但 pytest 默认模式又把仓库根目录加入搜索路径: 原称安装包的 Mac 236/346 项、Linux 143 项及更广 Linux 检查,均改记为源码结果。 进程内路径探针已确认该问题;不能据此认定 wheel 验收通过。 Linux 更广源码集成 5,498 项通过,1 项 PNG 编码器差异已修正并专项复验; PNG 生成器使用自建冻结字节,避免编码器版本影响复验。 另外修正资源名中空格、字面百分号及中文的 URI 编码;29 项源码资源测试通过。 旧 wheel 用 importlib 模式复现字面 %20 被拒绝:DOCX/Flat OPC 两项失败,其余四项通过。 更广 Mac 源码测试(tests+examples,编码名称修正前):22,189 项通过,2 项跳过, 219 项警告(976.59 秒),不能代替 wheel 验收。 最终 release wheel 的资源专项已用 importlib 模式确认实际包路径,29 项通过(0.43 秒)。 最终 release wheel 改用 CI 相同的 --import-mode=importlib,并在 pytest 同一进程内 预导入、确认实际包路径。Linux 真正安装包集成 5,505 项通过(353.90 秒,1 项字体替换警告); Mac 真正安装包全量(tests+examples)22,197 项通过,2 项跳过,219 项警告 (881.30 秒);最终 wheel 的 16 个修改模块与源码字节一致。 全局校验器现重放 32 个主题样本、16 个组合上下文、128 个往返及 6 个资源文件; Windows ZIP 元数据及 CRLF 均纳入固定校验。 本次受测主题来源/资源保存修复的本地验收通过,准备提交开发分支并复验远端 CI。 规范 DOM 颜色/主题编辑 API、全部主题色类别与上下文、背景对比及完整字体仍未验收。 本轮仅交付主题来源/资源保存修复;远端 CI 状态另行记录,不能据此宣称完整主题色或 Font API 已对齐。

格式 getter/setter 的固定观察见上表,不能替代最终渲染验收。首段复验生成器为 first_paragraph_trial.py(本地复验材料,未公开):15 个加载输入及 3 个新建/保存对照, 覆盖提示段落出现前后的值。官方许可说明确认 试用水印在加载和保存时加入,但未规定本次观察到的属性变化;持许可证结果仍未确认。 历史测试成绩和修复过程从 Git 历史查询,不作为当前工作树或后续提交的通过证明。