#615·BabelDOC

[错误] 静默丢失内容(旋转字形丢失,溢出文本绘制在框外,LLM-空响应批次丢失)

作者: nghebanhcom-alt创建于 2026年9月7日更新于 2026年9月7日

Bug A — 旋转角度在 0°/90°(±0.1°)之外的字符在解析时被默默丢弃,无错误/警告信息发出。`format/pdf/document_il/frontend/il_creater.py`,`on_lt_char()` 在第 968-974 行:如果文本矩阵旋转角度不在 -0.1..0.1 或 89.9..90.1 度范围内,该函数会提前返回(丢弃该字符)。没有回退路径 - 该字符从未进入 IL,从未被翻译,并且(因为 babeldoc 重建内容流而不是进行修补)原始字符也从输出中消失了。不会发出任何日志行。还证实了渲染器(`format/pdf/document_il/backend/pdf_creater.py:111-120`)和 `PdfCharacter`(`il_version_1.py:627-663`)中根本没有旋转角度字段 - 因此即使放宽阈值也只会水平重绘字符,而不会保留其原始角度。这看起来像是一个故意的架构限制,而不仅仅是一个糟糕的阈值。**重现**:`rotated_text_p67_source.pdf`(包含一个大约 -11° 旋转的标题块,16 行 - 可根据要求获取,请参阅下面的重现文件部分)。使用 `babeldoc --pages 1 rotated_text_p67_source.pdf` 与任何翻译器进行比较:旋转块在输出 PDF 中完全缺失,没有错误。**在 418 页的真实书中测量的影响**:19 页中有 7,832 个字符使用超出允许范围的旋转角度 - 所有这些都默默丢失。**建议的修复**:至少在出现这种情况时,应该记录一个警告(`logger.warning(...)`),以便下游工具/用户可以检测到丢失,而不是在输出中找到一个空白区域,没有诊断信息。

内容来源: funstory-ai/BabelDOC