如何批量的将每个文件夹中的图片合成一个PDF,并且把文件名命名成文件夹名
时间: 2024-05-08 16:16:35 浏览: 172
批量以文件夹名命名文件_照片批量命名_文件夹名命名文件_批量命名文件_以文件夹名批量命名文件_
5星 · 资源好评率100%
您可以使用Python来批量处理每个文件夹中的图片并将它们合并成一个PDF,然后将文件名命名为文件夹名。
以下是实现此任务的示例代码:
```python
import os
from PIL import Image
from pathlib import Path
from fpdf import FPDF
# 定义一个函数来合并图片并创建PDF
def create_pdf(directory):
pdf = FPDF()
pdf.set_auto_page_break(0)
for file in os.listdir(directory):
if file.endswith('.jpg') or file.endswith('.png'):
image_path = os.path.join(directory, file)
image = Image.open(image_path)
width, height = image.size
if width > height:
pdf.add_page('L')
else:
pdf.add_page()
pdf.image(image_path, 0, 0, pdf.w, pdf.h)
return pdf
# 遍历所有文件夹并创建相应的PDF
for folder in os.listdir():
if os.path.isdir(folder):
pdf = create_pdf(folder)
pdf_file_name = folder + '.pdf'
pdf.output(pdf_file_name, 'F')
```
在此代码中,我们首先定义了一个名为`create_pdf`的函数,该函数接受一个文件夹路径作为参数,并使用Pillow库中的`Image`类来打开每个图片文件。然后,我们检查每个图像的宽度和高度以决定PDF页面的方向,并使用FPDF库中的`add_page`方法添加新页面。最后,我们使用`image`方法将图像添加到PDF中。
然后,我们使用`os.listdir`函数遍历当前目录中的所有文件夹。对于每个文件夹,我们调用`create_pdf`函数并将其返回的PDF对象输出为一个新的PDF文件,以文件夹名命名。
请注意,此代码需要安装Pillow和FPDF库。您可以使用以下命令来安装它们:
```
pip install Pillow
pip install fpdf
```
阅读全文