PDF文件批量拆分为图片文件


前言

一、PDF如何快速拆分成图片?

先在百度进行了搜索,好多都是在线的工具,用几次还可以,但是拆分的文件多了,或者文件比较大就会有限制,思来想去,不如自己写一个本地脚本,用着方便也便捷,说干咱就干,准备写一个python处理的PDF文件的小脚本。

二、准备搞起来!!!

1.执行代码

首先确认需要用到的库:os、pdf2image 、tkinter。

import os
from pdf2image import convert_from_path
import tkinter as tk
from tkinter import filedialog, messagebox

def pdf_to_images(pdf_path, output_folder):
    file_name, _ = os.path.splitext(os.path.basename(pdf_path))
    images = convert_from_path(pdf_path)
    for i, image in enumerate(images, start=1):
        image_path = os.path.join(output_folder, f"{file_name}_page_{i}.png")
        image.save(image_path, 'PNG')
        print(f"Saved: {image_path}")
        
def process_single_pdf():
    pdf_path = filedialog.askopenfilename(title="Select a PDF file", filetypes=[("PDF files", "*.pdf")])
    if pdf_path:
        output_folder = os.path.join(os.path.dirname(pdf_path), "Batch_Split")
        os.makedirs(output_folder, exist_ok=True)
        pdf_to_images(pdf_path, output_folder)
        messagebox.showinfo("Success", "PDF has been split into images successfully!")
def process_pdf_folder():
    folder_path = filedialog.askdirectory(title="Select a folder containing PDF files")
    if folder_path:
        output_folder = os.path.join(folder_path, "Batch_Split")
        os.makedirs(output_folder, exist_ok=True)
        for file in os.listdir(folder_path):
            if file.lower().endswith('.pdf'):
                pdf_path = os.path.join(folder_path, file)
                pdf_to_images(pdf_path, output_folder)
        messagebox.showinfo("Success", "All PDFs have been split into images successfully!")

2.简易GUI前端

分别可以处理单个的pdf文件,也可以导入一个文件夹,处理文件夹里面所有pdf文件,并且对所有的pdf文件进行批量处理。

def create_gui():
    root = tk.Tk()
    root.title("PDF to Images Converter")

    tk.Button(root, text="Select Single PDF", command=process_single_pdf).pack(fill=tk.X, padx=50, pady=5)
    tk.Button(root, text="Select Folder with PDFs", command=process_pdf_folder).pack(fill=tk.X, padx=50, pady=5)

    root.mainloop()

当前的前端比较基础,没加进度条等一些可以实时看到进度的代码,后续持续更新上。
不知道如何运行代码的可以私信我哦!!!在这里插入图片描述

总结

脚本是因为日常工作中遇到了这种处理文件需求,首先当遇到一些人工成本很高并且都是重复性操作时,可以先考虑如何通过现有的环境资源去提高效率,当前AI飞速发展的时代,我们唯一的就是多动脑,懂思考,扩展知识面,打破舒适圈。第一次写文档,有很多不足的地方,有不足的地方欢迎各位大佬多多指教。

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值