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

使用pdfminer提取PDF文本时,空文本长度非0的判断问题求助

如何修正PDFMiner提取文本后的空内容判断逻辑?

问题场景

使用PDFMiner读取文本版和扫描版PDF时,扫描版PDF提取出的文本看似为空,但len(text)!=0,导致原有的len(text)==0判断无法触发OCR处理函数extract_ocr。

解决方案

方法1:去除首尾空白后判断长度

对提取的文本先过滤首尾的空白字符(包括换行、空格、制表符等),再判断处理后的字符串长度:

text = output_string.getvalue()
# 去除字符串首尾的所有空白字符
cleaned_text = text.strip()
if len(cleaned_text) == 0:
    extract_ocr(pdf_directory, file_name, text_directory)

strip()会过滤掉字符串首尾的各类空白,若处理后长度为0,说明原文本仅包含空白内容,判定为扫描版PDF并触发OCR。

方法2:检查是否全为空白字符

利用str.isspace()方法直接判断文本是否全部由空白字符组成,同时兼容真正的空字符串场景:

text = output_string.getvalue()
# 覆盖空字符串和全空白字符串两种情况
if not text or text.isspace():
    extract_ocr(pdf_directory, file_name, text_directory)

not text处理完全为空的字符串,text.isspace()处理由纯空白字符构成的字符串,两者结合可准确识别“无有效文本”的情况。

原因说明

PDFMiner处理扫描版PDF时,可能会将页面的空白区域解析为换行、空格等空白字符,这些字符会让len(text)不为0,但实际没有可读取的有效文本,因此原有的空长度判断失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:08:14