图片快速批量合并转pdf文件


前言

一、图片如何批量快速转pdf文件

在日常工作中,发现有一推图片需要处理,一个一个打开真的很麻烦,不如放在一块,我直接在一个pdf文件里面直接预览效率高,有一些图片转pdf的话,会有显示,adobe在转的时候,加载时间长,而且图片文件数量过多的时候,会导致提示数量显示等等问题,二话不说,继续用python落地这个需求。

二、准备搞起来!

1.导入库

把处理文件需要调用的库,通过“pip install 第三方库名”命令都安装上,统统搞里头。

from tkinter import Tk, Label, Button, Radiobutton, IntVar, messagebox
from tkinter import filedialog
from PIL import Image
import os

2.逻辑代码

准备上强度,逻辑代码搞里头。

    def choose_folder(self):
        self.image_folder = filedialog.askdirectory()
        if not self.image_folder:
            messagebox.showinfo("Info", "No folder selected. Please select a folder.")
        else:
            messagebox.showinfo("Info", f"Selected folder: {self.image_folder}")

    def convert_images_to_pdf(self):
        if not hasattr(self, 'image_folder') or not self.image_folder:
            messagebox.showinfo("Error", "Please select an image folder first.")
            return

        output_folder = os.path.join(self.image_folder, "pdf文件")
        if not os.path.exists(output_folder):
            os.makedirs(output_folder)

        images_for_merge = []

        for image_file in os.listdir(self.image_folder):
            if image_file.lower().endswith((".png", ".jpg", ".jpeg")):
                image_path = os.path.join(self.image_folder, image_file)
                image = Image.open(image_path).convert('RGB')

                if self.merge_into_single_pdf.get() == 1:
                    images_for_merge.append(image)
                else:
                    pdf_file_name = os.path.splitext(image_file)[0] + '.pdf'
                    pdf_path = os.path.join(output_folder, pdf_file_name)
                    image.save(pdf_path)
                    print(f"Converted {image_file} to PDF in {output_folder}.")

        if self.merge_into_single_pdf.get() == 1 and images_for_merge:
            merged_pdf_path = os.path.join(output_folder, "merged_images.pdf")
            images_for_merge[0].save(merged_pdf_path, save_all=True, append_images=images_for_merge[1:])
            print(f"Merged all images into {merged_pdf_path}")

        messagebox.showinfo("Complete", "Conversion complete. Check the output folder.")

3.前端GUI

    def __init__(self, root):
        self.root = root
        self.root.title("Image to PDF Converter")

        self.merge_into_single_pdf = IntVar()
        self.merge_into_single_pdf.set(0)  # Default to separate PDFs

        Label(root, text="Convert images to PDF").pack()

        Button(root, text="Choose Image Folder", command=self.choose_folder).pack()

        Radiobutton(root, text="Merge into single PDF", variable=self.merge_into_single_pdf, value=1).pack()
        Radiobutton(root, text="Separate PDFs for each image", variable=self.merge_into_single_pdf, value=0).pack()

        Button(root, text="Convert", command=self.convert_images_to_pdf).pack()

总结

此次脚本PDF文件批量拆分图片源代码是一款高效便捷的脚本工具,具有强大的单文件拆分与批量处理能力。用户只需下载并运行源代码,即可实现对单个PDF文件的快速图片拆分,同时也能高效处理整个文件夹内所有PDF文件的图片拆分任务,极大程度上提高了工作效率,满足用户多样化的PDF文件图片处理需求。不论是单一文件操作还是大批量处理,均能实现一键操作,简化繁琐步骤,让用户在PDF图片拆分工作中享受前所未有的轻松与便利。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值