#3978·pypdf

extract_text: 由于对不包含" " (空格) 字形的复合字体的宽度估算不准,空格提取失败

作者: jbylund创建于 2026年8月18日更新于 2026年8月20日
标签workflow-text-extraction

对于使用复合字体生成的 TeX pdf 文件,文档中没有 " " 字符。相反,字词间的间隙通过在 TJ 数组中进行调整来绘制。pypdf 必须选择一个 TJ 调整,将 kerning (字内调整) 和 spacing (字间调整) 分开。它通过在字符映射中搜索 " " 字符来实现此操作。如果没有找到该字符,则返回字面 " "。然后,_add_space_width 会查找该索引处的字符的宽度。在我们的情况下," " 在文档中没有找到," " = chr(32),并且它在字符宽度中找到了 32 处的字符宽度 - 在我的字体中,32 处的字符是 Q,而它所得到的宽度比 TJ 字间调整宽度大得多,这意味着不会在提取的文本中插入空格。我认为有 3 种情况: