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

Azure函数Blob触发器提取PDF文本:字符间多余空格问题

解决PyPDF2提取PDF文本字符间大量多余空格的问题

PyPDF2的文本提取机制对部分PDF文件(尤其是采用特殊字体布局或嵌入方式的文件)支持不足,容易出现字符拆分、多余空格的问题。以下是两种有效的解决方式:

方案一:改用PyMuPDF(fitz)提取文本

PyMuPDF的文本提取精度远优于PyPDF2,对复杂排版的PDF兼容性更好。具体修改步骤如下:

  1. 安装依赖包
pip install pymupdf
  1. 替换原有的PDF读取与文本提取代码
    将你原来使用PyPDF2的部分替换为以下代码:
from io import BytesIO
import fitz

stream = BytesIO()
blob_download_pdf.download_to_stream(stream)
# 以PDF格式打开字节流
doc = fitz.open("pdf", stream)
# 提取第一页文本
text_pdf = doc[0].get_text()
# 关闭文档释放资源
doc.close()

方案二:正则清理提取后的文本(临时应急方案)

如果暂时无法更换依赖库,可以用正则表达式合并连续多余空格,但这种方法可能会误删合理的空格(比如英文单词间的空格),仅建议作为临时处理手段:

import re

# 保留原PyPDF2提取代码
text_pdf = fileReader.getPage(0).extractText()
# 替换连续多个空格为单个空格,并去除首尾空格
cleaned_text = re.sub(r'\s+', ' ', text_pdf).strip()
# 使用cleaned_text替换原text_pdf进行后续上传

替换完成后重新执行代码,提取的文本即可恢复正常格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:25:19