前言
一、图片如何批量快速转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图片拆分工作中享受前所未有的轻松与便利。