用Python编程,从一个文件夹中读取所有照片。生成一份PDF文档。纸张大小为a4纸,每页一张照片
时间: 2023-05-14 14:07:00 浏览: 157
文件夹下所有图片的读取以及显示(python程序)
5星 · 资源好评率100%
可以使用Python的Pillow库和reportlab库来实现这个功能。首先,使用Pillow库读取文件夹中的所有照片,然后使用reportlab库创建一个PDF文档,并将每张照片插入到PDF文档中。下面是示例代码:
```python
from PIL import Image
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
import os
# 获取文件夹中的所有照片
image_folder = 'path/to/folder'
image_files = [os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.endswith('.jpg') or f.endswith('.png')]
# 创建PDF文档
pdf_file = 'path/to/output.pdf'
c = canvas.Canvas(pdf_file, pagesize=A4)
# 将每张照片插入到PDF文档中
for image_file in image_files:
img = Image.open(image_file)
img_width, img_height = img.size
aspect_ratio = img_width / float(img_height)
pdf_width, pdf_height = A4
pdf_aspect_ratio = pdf_width / float(pdf_height)
if aspect_ratio >= pdf_aspect_ratio:
width = pdf_width
height = width / aspect_ratio
else:
height = pdf_height
width = height * aspect_ratio
c.setPageSize((width, height))
c.drawImage(image_file, 0, 0, width, height)
c.showPage()
# 保存PDF文档
c.save()
```
这段代码会将文件夹中所有的.jpg和.png格式的照片插入到一个PDF文档中,每页一张照片,纸张大小为A4纸。
阅读全文