Files
ElyOffice/tasks/reviews/R2.17-r1.md
T

8 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
crates/ely-pdf-engine/shim/ely_write.c:145 — 生成的 ToUnicode CMap 在 `beginbfchar` 前遗漏必需的条目数,保存结果在 macOS PDFKit 中丢失可提取文字,违反 PDF-03、PDF-13。复现:打开 `tests/fixtures/office/t.pdf`,以 `original` 将 `BUNDLE TEXT` 改为 `TEXT BUNDLE`,框宽乘二,保存后用 `PDFDocument.string` 读取,结果为 `Optional("")`,CoreGraphics 报 `failed to parse embedded CMap`;原文件返回 `BUNDLE TEXT`。仅将输出流的 `beginbfchar` 改成 `9 beginbfchar`,PDFKit 即返回 `TEXT BUNDLE`。独立构建的引擎包 106 项测试全部通过,其中 content 的 12 项也通过;新增测试只通过 MuPDF 读取内存文字,遗漏了此保存兼容性回归。修复方向:为每组最多 100 条的映射写入实际条目数,并增加保存后由 PDFKit 独立提取文字的断言。证据:`/private/tmp/ely-r217-suite.log`、`/private/tmp/ely-r217-pdfkit-comparison.log`。
crates/ely-pdf-engine/shim/ely_write.c:140 — ToUnicode 按 glyph ID 去重,多个 Unicode 字符共享字形时仅保留首个字符;写出又直接以 glyph ID 为字符码,造成文字被静默改写。复现:嵌入 Arial,令 CID 2 映射 U+002D、CID 3 映射 U+00AD,两者在 CIDToGIDMap 中同指向字形 16;正文为 `A\u{00AD}B`,文字块返回相同原文且 `editable=true`。以 `original` 原样应用,worker 返回 `Done("1")`,随后读取及保存文件的文本均变成 `A-B`。探针重复运行均失败,违反 R2.17 的面板文字一致性及 PDF-03。修复方向:保留 Unicode 到输出字符码的独立映射,用 CIDToGIDMap 将各字符码映射到共享字形,并回归验证共享字形字符的原样编辑及保存重开。证据:`/private/tmp/ely-r217-alias-normal.log`。
crates/ely-pdf-engine/shim/ely_write.c:537 — 本次新增字体映射实现使文件从 449 行增长到 537 行,超过 agents.md 第 5 条的 500 行上限;`wc -l crates/ely-pdf-engine/shim/ely_write.c` 可复现。修复方向:拆分字体映射实现,使各源码文件保持在 500 行以内。