将多张图片按照顺序合并成一个PDF文件

刚开始合并没有顺序,合并成了一个指定文件了,但排序是乱的。

python 复制代码
import os
from PIL import Image

def folder_to_pdf(folder_path, output_path):
    image_paths = []
    for file_name in os.listdir(folder_path):
        if file_name.endswith(('jpg', 'jpeg', 'png')):
            image_paths.append(os.path.join(folder_path, file_name))
    
    if image_paths:
        images = [Image.open(image).convert('RGB') for image in sorted(image_paths)]
        images[0].save(output_path, save_all=True, append_images=images[1:])
        print(f"已将文件夹 {folder_path} 中的图片合并为 PDF 文件 {output_path}")
    else:
        print("文件夹中没有找到图片文件")

# 示例
folder_to_pdf('images_folder', 'output_folder.pdf')

第二版优化后的

实际效果还是达到了,需要的可以玩玩。

python 复制代码
from PIL import Image

def images_to_pdf(image_paths, output_path):
    images = [Image.open(image).convert('RGB') for image in image_paths]
    images[0].save(output_path, save_all=True, append_images=images[1:])
    print(f"已将多张图片合并为 PDF 文件 {output_path}")

def generate_filenames(start, end):
    return [f"{i}.jpg" for i in range(start, end + 1)]

# 这里修改数值按照从1开始累加的方式排序
start = 1
end = 1000
image_paths = generate_filenames(start, end)
images_to_pdf(image_paths, 'output2024.pdf')
相关推荐
BingoGo12 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack12 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack1 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1234 天前
matlab画图工具
开发语言·matlab
dustcell.4 天前
haproxy七层代理
java·开发语言·前端