脚本:PDF文件批量转换成图片(python3)

文章目录

语言

语言:python 3

用法

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

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

例如:

python 复制代码
#安装库
pip install pyautogui
 
#安装库
pip install  pillow

提供两种源码

源码1

第一种是在代码中手动添加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()

源码2

第二种是点击运行后,弹出窗口选择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()
相关推荐
哇咔咔哇咔16 分钟前
【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
python·conda·virtualenv
四喜花露水18 分钟前
Vue 自定义icon组件封装SVG图标
前端·javascript·vue.js
前端Hardy27 分钟前
HTML&CSS: 实现可爱的冰墩墩
前端·javascript·css·html·css3
CSXB9937 分钟前
三十四、Python基础语法(文件操作-上)
开发语言·python·功能测试·测试工具
web Rookie1 小时前
JS类型检测大全:从零基础到高级应用
开发语言·前端·javascript
Au_ust1 小时前
css:基础
前端·css
帅帅哥的兜兜1 小时前
css基础:底部固定,导航栏浮动在顶部
前端·css·css3
yi碗汤园1 小时前
【一文了解】C#基础-集合
开发语言·前端·unity·c#
就是个名称1 小时前
购物车-多元素组合动画css
前端·css
亚图跨际1 小时前
MATLAB和Python及R潜变量模型和降维
python·matlab·r语言·生物学·潜变量模型