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

如何使用Python批量转换同一文件夹内的百余个PDF文件为图片?

批量PDF转图片的解决方案

没问题,我帮你把单文件的代码扩展成批量处理版本,还加了几个实用细节,避免文件名冲突、处理异常情况,让100多个PDF的转换更顺畅:

完整代码示例

import os
from pdf2image import convert_from_path

# 替换成你的PDF所在文件夹路径
pdf_folder = "你的PDF文件夹绝对路径"
# 保持你原来的poppler路径不变
poppler_path = r"E:/software/poppler-0.67.0/bin"
# 自动在PDF文件夹下创建一个子文件夹存放所有图片,避免杂乱
output_root = os.path.join(pdf_folder, "pdf_converted_images")
os.makedirs(output_root, exist_ok=True)

# 遍历目标文件夹里的所有文件
for filename in os.listdir(pdf_folder):
    # 筛选出PDF文件(兼容大小写后缀,比如.PDF)
    if filename.lower().endswith(".pdf"):
        # 拼接完整的PDF文件路径
        full_pdf_path = os.path.join(pdf_folder, filename)
        # 提取PDF文件名(不带后缀),用来做图片命名和子文件夹名
        pdf_base_name = os.path.splitext(filename)[0]
        
        try:
            # 把PDF转换成图片列表
            images = convert_from_path(full_pdf_path, poppler_path=poppler_path)
            
            # 为每个PDF单独创建子文件夹,避免不同PDF的图片混在一起
            single_pdf_output = os.path.join(output_root, pdf_base_name)
            os.makedirs(single_pdf_output, exist_ok=True)
            
            # 逐个保存图片,命名格式为「PDF文件名_页码.jpg」
            for page_num, image in enumerate(images, start=1):
                image_save_name = f"{pdf_base_name}_page_{page_num}.jpg"
                image_save_path = os.path.join(single_pdf_output, image_save_name)
                image.save(image_save_path, "JPEG")
            
            print(f✅ 成功转换:{filename}")
        except Exception as e:
            # 遇到损坏的PDF或者其他错误时,跳过并打印提示,不中断整个批量任务
            print(f❌ 转换失败 {filename}:{str(e)}")

代码亮点说明

  • 自动整理文件:每个PDF的图片会存放在单独的子文件夹里,文件名还带页码,找起来特别方便
  • 容错性强:加入了异常捕获,哪怕某个PDF损坏或者无法读取,程序也会继续处理其他文件
  • 兼容大小写:不管PDF后缀是.pdf还是.PDF都能被识别到
  • 路径安全:用os.path.join拼接路径,避免Windows和Linux的路径格式问题

可选优化建议

  • 如果需要更高清晰度的图片,可以在convert_from_path里添加dpi=300参数(默认dpi较低),比如:
    images = convert_from_path(full_pdf_path, poppler_path=poppler_path, dpi=300)
    
  • 如果你不想为每个PDF创建子文件夹,直接把所有图片放在根输出文件夹里,可以跳过创建子文件夹的步骤,直接用{pdf_base_name}_page_{page_num}.jpg命名图片
  • 可以添加进度提示,比如先统计总PDF数量,再显示当前处理进度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 13:52:51