python文件夹图片按名称顺序合并成pdf
时间: 2025-06-26 13:26:50 浏览: 13
### Python实现将文件夹中的图片按名称排序后合并生成一个PDF文件
要完成这一任务,可以利用Python的`os`模块遍历目标文件夹内的所有图片文件,并使用`PIL`(即Pillow库)对这些图片进行加载、调整大小以及最终合并为单个PDF文件的操作。以下是具体方法:
#### 实现步骤说明
1. **导入所需库**
需要安装并引入两个核心库:`os`用于操作文件系统,`PIL.Image`用于图像处理。
2. **获取图片列表并排序**
使用`os.listdir()`函数读取指定路径下的所有文件名,并筛选出符合条件的图片文件(如`.jpg`, `.png`)。随后通过`sorted()`函数对其进行字母序排列[^1]。
3. **加载与转换图片数据**
对每张选中的图片调用`Image.open()`打开它们;如果某些图片尺寸不一致,则可能还需要统一其分辨率以便于后续组合入同一个文档当中。
4. **创建PDF文件**
将首幅图作为基础对象传给save()方法的同时设置参数format='PDF'和save_all=True,之后再把其余各帧追加至append_images选项里即可形成多页版面结构。
下面是完整的代码示例:
```python
from PIL import Image
import os
def images_to_pdf(folder_path, output_filename):
image_files = [f for f in os.listdir(folder_path) if f.lower().endswith(('.png', '.jpg', '.jpeg'))]
sorted_image_files = sorted(image_files)
images_list = []
first_image_path = None
for img_file in sorted_image_files:
img_path = os.path.join(folder_path, img_file)
with Image.open(img_path) as im:
if not first_image_path:
first_image_path = img_path
else:
images_list.append(im.convert('RGB'))
if first_image_path:
with Image.open(first_image_path) as first_im:
pdf_path = os.path.join(folder_path, output_filename + ".pdf")
first_im.save(pdf_path, "PDF", resolution=100.0, save_all=True, append_images=images_list)
print(f"成功生成 PDF 文件: {pdf_path}")
else:
print("未找到任何图片文件")
# 调用函数
root_folder_path = "./example_pictures"
output_name = "combined_pictures"
images_to_pdf(root_folder_path, output_name)
```
上述脚本实现了从指定目录读取所有支持类型的静态影像资源,经过必要的预处理后再封装进单一电子书形式存储的功能。
阅读全文
相关推荐


















