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()
相关推荐
nuclear20111 小时前
使用Python 在Excel中创建和取消数据分组 - 详解
python·excel数据分组·创建excel分组·excel分类汇总·excel嵌套分组·excel大纲级别·取消excel分组
Lucky小小吴1 小时前
有关django、python版本、sqlite3版本冲突问题
python·django·sqlite
GIS 数据栈2 小时前
每日一书 《基于ArcGIS的Python编程秘笈》
开发语言·python·arcgis
爱分享的码瑞哥2 小时前
Python爬虫中的IP封禁问题及其解决方案
爬虫·python·tcp/ip
傻啦嘿哟3 小时前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel
B站计算机毕业设计超人3 小时前
计算机毕业设计SparkStreaming+Kafka旅游推荐系统 旅游景点客流量预测 旅游可视化 旅游大数据 Hive数据仓库 机器学习 深度学习
大数据·数据仓库·hadoop·python·kafka·课程设计·数据可视化
IT古董3 小时前
【人工智能】Python在机器学习与人工智能中的应用
开发语言·人工智能·python·机器学习
湫ccc4 小时前
《Python基础》之pip换国内镜像源
开发语言·python·pip
hakesashou4 小时前
Python中常用的函数介绍
java·网络·python
菜鸟的人工智能之路4 小时前
极坐标气泡图:医学数据分析的可视化新视角
python·数据分析·健康医疗