大数据

python 图片转pdf

import os
import shutil
from PIL import Image
from PyPDF2 import PdfMerger


def images_to_pdf(image_folder, output_filename):
    """
    :param image_folder: 存储图片的文件夹路径
    :param output_filename: 图片转pdf目标路径 /xxx/xxx.pdf
    :return:
    """
    merger = PdfMerger()
    temp_dir = os.path.join(image_folder, "temp_pdfs")
    os.makedirs(temp_dir, exist_ok=True)
    # 将每张图片转为单页PDF
    for idx, img_file in enumerate(sorted(os.listdir(image_folder))):
        img_path = os.path.join(image_folder, img_file)
        if img_path.lower().endswith(('.png', '.jpg', '.jpeg')):
            img = Image.open(img_path)
            temp_pdf = os.path.join(temp_dir, f"temp_{idx}.pdf")
            img.save(temp_pdf, "PDF", resolution=100.0)
            merger.append(temp_pdf)

    # 合并所有临时PDF
    merger.write(output_filename)
    merger.close()
    # 清理临时文件(可选)
    shutil.rmtree(temp_dir)