首页 > 其他分享 >PDF文件批量拆分为图片文件

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

时间:2024-04-11 13:33:45浏览次数:23  
标签:output pdf path PDF folder 文件批量 os 图片

文章目录


前言

一、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飞速发展的时代,我们唯一的就是多动脑,懂思考,扩展知识面,打破舒适圈。第一次写文档,有很多不足的地方,有不足的地方欢迎各位大佬多多指教。

标签:output,pdf,path,PDF,folder,文件批量,os,图片
From: https://blog.csdn.net/weixin_45354379/article/details/137626014

相关文章

  • VScode里用MPE插件导出带大纲的HTML和PDF文件
    前置条件:1.在VScode里安装好MarkdownPreviewEnhanced插件2.导出PDF文件,需要用到Prince软件,要先在电脑上安装Prince软件,可以去它的官网下载                Prince-DownloadPrince(princexml.com)windows系统的,选这个就可以了,解压后放在自己想放的......
  • 一个PDF文件含有多篇不同的内容,如何把这些内容分离出来?
    一,PDF的含义PDF,全称PortableDocumentFormat,即便携式文档格式,是一种由AdobeSystems开发的文件格式,用于呈现文档,包括文本、图像、向量图形、字体、颜色、页面布局等,并可在不同的操作系统、设备和软件平台上进行查看和打印。PDF文件的设计初衷是为了解决不同操作系统和应用程......
  • 批量压缩文件夹里的图片(python)
    起源是我收藏了很多照片,但是太大的照片不利于分享使用,而且我并不需要那么高清晰度,通过在线压缩工具tinypng又太慢拥有python下载python教程有很多,但我推荐使用anaconda管理python,可以灵活的管理python版本,还不会导致本地版本冲突压缩脚本安装pillow库,我在pycharm里可以直接......
  • java代码将16进制字符串转换为图片,jdbc入库blob字段,解决ORA-01704,PLS-00172,ORA-06550,
    从Oracle导出SQL文件中的insert语句包含blob字段,语句HEXTORAW函数将16进制的字符串入库,由于字符串太长,insert失败下面的代码读取完整的insert语句,将HEXTORAW函数连同16进制的字符串替换为NULL,先将字段置空插入记录,然后使用PreparedStatement对图片文件读流更新入库importorg.......
  • 数码相框-显示bmp图片
    写主函数和测试功能#include<unistd.h>#include<stdlib.h>#include<stdio.h>#include<config.h>#include<draw.h>#include<encoding_manager.h>#include<fonts_manager.h>#include<disp_manager.h>#include<inpu......
  • pageoffice给在线打开的excel单元格插入图片
    转载:单元格添加图片#单元格添加图片查看本示例演示效果本示例关键代码的编写位置Vue+Springboot注意本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。Java命名空间com.zhuozhengsoft.pageoffice.excelwriter中的......
  • django simpleui 的list_display添加自定义列、显示图片 及alert弹窗的设置方法
    参考djangosimpleui的list_display添加自定义列、显示图片及alert弹窗的设置方法-CSDN博客环境:python:3.8.xDjango:3.2.xDjango-simpleui:2021.x先定义下模型#models.pyclassDog(models.Model):name=models.CharField(max_length=15,verbose_name='小狗名字')......
  • 网上图书商城的设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+LW)图
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读300套最新项目持续更新中.....最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm......
  • 【专题】2024年中国游戏营销趋势报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35745原文出处:拓端数据部落公众号2023年,全球游戏行业表现卓越,不仅用户规模扩大至33.81亿,行业营收也攀升至1.35万亿人民币,呈现出强劲的增长态势。然而,与此同时,全球游戏创业公司在风险投资上的大幅缩减也揭示了行业面临的某些挑战。阅读原文,获取专题......
  • 【教学类-50-06】20240410“数一数”4类星号图片制作PDF学具
    作品展示:背景需求:前文遍历四个文件夹,分别将每个文件夹内的10个图片的左上角加入星号,显示难度系数【教学类-50-05】20240410“数一数”4类图片添加“难度星号”-CSDN博客文章浏览阅读55次,点赞2次,收藏2次。【教学类-50-05】20240410“数一数”4类图片添加“难度星号”https......