You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何pypdf提取文本时插入多余空格,Windows搜索及Adobe却可正常识别?

pypdf提取文本出现多余空格,Windows搜索却能识别正常文本的原因

核心原因在于PDF文本存储与提取的逻辑差异:

  • PDF的文本存储特性:PDF里的文本并非按连续字符串保存,而是以单个字符为单位记录坐标位置,再逐个渲染到页面上。Adobe Reader和Windows搜索直接读取PDF内嵌的原始文本流(未经过位置计算的原生字符串),所以能拿到没有多余空格的正确内容。
  • pypdf的提取逻辑:pypdf在提取文本时,会通过计算字符间的横向坐标间距来判断是否需要插入空格——当两个字符的间距超过预设阈值时,就会自动添加空格。部分PDF中,字符视觉上是连续的,但底层坐标间距刚好触发了这个阈值,就会出现多余空格,这是pypdf在3.11.0及更早版本里的已知处理逻辑问题。

你的代码示例:

from pypdf import PdfReader

reader = PdfReader(path)
for page in reader.pages:
    text = page.extract_text()
    lines = text.splitlines()

文本对比:

Acrobat Reader显示的内容:

HERMES INVESTMENT MGMT US SMID Equity L Hgd Acc (GBP)

pypdf提取的内容:

HERMES INVESTMEN T MGMT US SMID Equ ity L Hgd Acc (GBP)

内容的提问来源于stack exchange,提问作者PMSK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:12:04