python小脚本——批量将PDF文件转换成图片

语言:python 3

用法:选择PDF文件所在的目录,点击 确定 后,自动将该目录下的所有PDF转换成单个图片,图片名称为: pdf文件名.page_序号.jpg

如运行中报错,需要自行根据报错内容按照缺失的库

例如:

python 复制代码
#安装库

pip install pyautogui

#安装库

pip install  pillow

这里提供两种源码,第一种是在代码中手动添加pdf所在目录

python 复制代码
import os
import glob
from PyPDF2 import PdfReader
from pdf2image import convert_from_path

pdf_dir = "path/to/pdf_dir/"  #pdf目录

# 遍历目录中的PDF文件
pdf_files = glob.glob(os.path.join(pdf_dir, "*.pdf"))

# 遍历每个PDF文件,并将其转换为图片
for pdf_file in pdf_files:
    # 创建PdfReader对象
    pdf = open(pdf_file, 'rb')
    pdf_reader = PdfReader(pdf)
    
    # 遍历PDF的页面并将其转换为图片
    for page_num in range(len(pdf_reader.pages)):
        # 获取页面对象
        page = pdf_reader.pages[page_num]

        # 将PDF页面转换为图像
        images = convert_from_path(pdf_file, first_page=page_num+1, last_page=page_num+1)

        # 定义图像保存路径
        filename = os.path.splitext(os.path.basename(pdf_file))[0]
        image_path = os.path.join(pdf_dir, f"{filename}_page_{page_num+1}.jpg")

        # 保存图像
        for i, image in enumerate(images):
            if i == 0:
                image.save(image_path, "JPEG")
            else:
                image_path = os.path.join(pdf_dir, f"{filename}_page_{page_num+1}_{i+1}.jpg")
                image.save(image_path, "JPEG")

    # 关闭PDF文件
    pdf.close()

第二种是点击运行后,弹出窗口选择PDF所在文件夹,程序运行对该文件夹下的所有PDF文件转换成图片

python 复制代码
#手动选择目录下的pdf文件
import os
from tkinter import Tk
from tkinter.filedialog import askdirectory
from PyPDF2 import PdfReader
from pdf2image import convert_from_path

# 打开选择目录的对话框
Tk().withdraw()  # 隐藏Tkinter根窗口
pdf_dir = askdirectory(title="选择PDF所在目录")

# 遍历目录中的PDF文件
pdf_files = [f for f in os.listdir(pdf_dir) if f.endswith(".pdf")]

# 遍历每个PDF文件,并将其转换为图片
for pdf_file in pdf_files:
    # 创建PdfReader对象
    pdf_path = os.path.join(pdf_dir, pdf_file)
    pdf = open(pdf_path, 'rb')
    pdf_reader = PdfReader(pdf)
    
    # 遍历PDF的页面并将其转换为图片
    for page_num in range(len(pdf_reader.pages)):
        # 获取页面对象
        page = pdf_reader.pages[page_num]

        # 将PDF页面转换为图像
        images = convert_from_path(pdf_path, first_page=page_num+1, last_page=page_num+1)

        # 定义图像保存路径
        filename = os.path.splitext(pdf_file)[0]
        image_path = os.path.join(pdf_dir, f"{filename}_page_{page_num+1}.jpg")

        # 保存图像
        for i, image in enumerate(images):
            if i == 0:
                image.save(image_path, "JPEG")
            else:
                image_path = os.path.join(pdf_dir, f"{filename}_page_{page_num+1}_{i+1}.jpg")
                image.save(image_path, "JPEG")

    # 关闭PDF文件
    pdf.close()
相关推荐
我的xiaodoujiao18 分钟前
快速学习Python基础知识详细图文教程14--模块
开发语言·python·学习·测试工具
残影飞雪22 分钟前
Ollama对话脚本
python
jerryinwuhan25 分钟前
数据预处理技术 2026-2027-1 开篇-课程介绍
大数据·python
看昭奚恤哭1 小时前
ontainer App】Container App无法从Container Registries 拉取镜像 - 报错 Forbidden
后端·python·flask
0566461 小时前
Python康复训练——数据结构
数据结构·windows·python
Tinyfacture1 小时前
接口自动化之添加商品(pytest)
python·测试工具·自动化·pytest
听雨入夜1 小时前
“同声传译”还是“全文翻译”?为何HotSpot虚拟机仍要保留解释器?
开发语言·python
随风M记忆s1 小时前
GEE&Python-demo:利用Sentinel-监测北京奥林匹克森林公园年NDVI变化(附Python版)
开发语言·python·sentinel
软萌萌的12 小时前
Python零基础从入门到精通详细教程-数据类型
开发语言·windows·python
东北赵四2 小时前
关于Java泛型的知识点及其相关面试题
java·windows·python