如何修复使用pdf2image时出现的PDFPageCountError错误?
解决
pdf2image抛出PDFPageCountError(无法打开PDF文件)的问题 你的代码:
from pdf2image import convert_from_path images = convert_from_path('sample.pdf', 500, poppler_path=r'C:\Program Files\poppler-24.07.0\Library\bin') for i in range(len(images)): images[i].save('page' + str(i) + '.jpg', 'JPEG')
运行时报错:
pdf2image.exceptions.PDFPageCountError: Unable to get page count. I/O Error: Couldn't open file 'sample.pdf': No error.
以下是具体排查和解决步骤:
确认PDF文件路径正确性
用相对路径'sample.pdf'时,必须保证PDF文件和你的Python脚本在同一个目录下。不确定的话,先打印当前工作目录验证:import os print(os.getcwd())如果PDF不在当前目录,直接使用绝对路径,比如
r'C:\Users\你的用户名\Desktop\sample.pdf'。更稳妥的写法是通过脚本路径拼接PDF路径,避免路径问题:script_dir = os.path.dirname(os.path.abspath(__file__)) pdf_path = os.path.join(script_dir, 'sample.pdf')检查PDF文件是否损坏
手动打开sample.pdf,确认文件能正常读取。如果文件本身损坏,换一个正常的PDF文件测试。验证poppler工具可用性
打开命令提示符,执行以下命令(替换为你的poppler路径和PDF路径):"C:\Program Files\poppler-24.07.0\Library\bin\pdfinfo.exe" "C:\你的PDF文件路径\sample.pdf"如果能正常输出PDF的页码、大小等信息,说明poppler配置没问题;如果报错,检查poppler安装包是否完整,bin目录下是否有
pdfinfo.exe和pdftocairo.exe这两个关键工具。排查权限问题
避免将PDF文件放在Windows受保护目录(如C:\Windows、C:\Program Files),这类目录可能限制程序读取权限。把PDF移到桌面、文档等普通目录再测试。
修改后的示例代码:
from pdf2image import convert_from_path import os script_dir = os.path.dirname(os.path.abspath(__file__)) pdf_path = os.path.join(script_dir, 'sample.pdf') images = convert_from_path(pdf_path, 500, poppler_path=r'C:\Program Files\poppler-24.07.0\Library\bin') for idx, image in enumerate(images): image.save(f'page{idx}.jpg', 'JPEG')
内容的提问来源于stack exchange,提问作者Keeton Matthews
相关产品推荐
相关产品推荐

