将多个图片转换为PDF文件在Python中可以通过多个库来实现,其中最常用的库之一是Pillow
(用于图像处理)和reportlab
(用于生成PDF)。不过,对于直接图片转PDF的操作,更推荐使用Pillow
配合PyMuPDF
(又名fitz
)或者img2pdf
库,这些库提供了更简洁的接口。
以下是一个使用Pillow
和img2pdf
库的示例,来将多个图片转换为PDF文件:
- 首先,确保你已经安装了所需的库。你可以使用以下命令来安装它们:
pip install pillow img2pdf
- 然后,使用以下Python代码将多个图片转换为PDF:
from PIL import Image
import img2pdf
import os
def images_to_pdf(image_paths, output_pdf_path):
# 打开所有的图片并保存到一个列表中
with open(output_pdf_path, "wb") as pdf_file:
images = [Image.open(img_path).convert("RGB") for img_path in image_paths]
# 使用img2pdf将图片列表转换为PDF并写入文件
pdf_file.write(img2pdf.convert(images))
# 示例:将当前目录下的所有jpg图片转换为PDF
input_directory = '.' # 当前目录
output_pdf_path = 'output.pdf'
# 获取当前目录下所有的jpg图片路径
image_files = [f for f in os.listdir(input_directory) if f.lower().endswith('.jpg')]
image_paths = [os.path.join(input_directory, img_file) for img_file in image_files]
# 调用函数将图片转换为PDF
images_to_pdf(image_paths, output_pdf_path)
print(f"PDF文件已生成: {output_pdf_path}")
在这个示例中:
images_to_pdf
函数接收一个图片路径列表和一个输出PDF路径。- 使用
Pillow
库的Image.open
打开每个图片,并将其转换为RGB模式(如果需要处理其他图片格式,如PNG,可以省略convert("RGB")
部分)。 - 使用
img2pdf.convert
将图片列表转换为PDF二进制数据,并写入指定的PDF文件中。
你可以根据需要修改这个脚本,比如处理其他图片格式(如PNG),或者从其他目录读取图片。
希望这对你有所帮助!