Review: R2.17 round 1
This commit is contained in:
1 file changed
+7
@@ -0,0 +1,7 @@
|
||||
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 行以内。
|
||||
Reference in new issue
Block a user