PyPDF4读取PDF触发PdfReadWarning警告,仅单个文件异常咨询
解决PyPDF4读取特定PDF时的
Superfluous whitespace found in object header警告 问题说明
- 使用PyPDF4读取
ABRAHAO.pdf文件时,触发警告:PdfReadWarning: Superfluous whitespace found in object header - 已测试295个其他PDF文件,均能正常读取,仅该文件出现此警告
相关代码
import PyPDF4 path = f'C:/Users/Gabriel/Desktop/Curso/Teste/pdfs/teste/ABRAHAO.pdf' pdf = open(path, 'rb') reader = PyPDF4.PdfFileReader(pdf, strict=False) page = reader.getPage(0) text = page.extractText() text = text.strip()
原因分析
该警告是因为目标PDF的文件结构不符合标准规范:对象头区域存在多余的空白字符。即使设置了strict=False关闭严格解析模式,PyPDF4仍会抛出警告提示这种格式问题,但不会影响文本提取功能的正常运行。
解决方案
方案1:屏蔽特定警告
如果不需要看到该警告,可以通过Python的warnings模块针对性屏蔽:
import warnings from PyPDF4 import PdfReadWarning # 屏蔽PyPDF4的对象头多余空白警告 warnings.filterwarnings("ignore", category=PdfReadWarning) import PyPDF4 path = f'C:/Users/Gabriel/Desktop/Curso/Teste/pdfs/teste/ABRAHAO.pdf' pdf = open(path, 'rb') reader = PyPDF4.PdfFileReader(pdf, strict=False) page = reader.getPage(0) text = page.extractText() text = text.strip()
方案2:修复PDF格式
使用专业PDF工具(如Adobe Acrobat)重新保存该文件,或使用pdftk等命令行工具优化PDF结构,消除非标准的空白字符,从根源解决警告问题。
内容的提问来源于stack exchange,提问作者Espanholzx zx
相关产品推荐
相关产品推荐

