File size: 576 Bytes
cba2c8f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
from PIL import Image
from io import BytesIO
from pathlib import Path
def images_to_pdf(files, output_pdf_path: Path):
images = []
for file in files:
# FastAPI UploadFile → bytes → PIL Image
file_bytes = file.file.read()
img = Image.open(BytesIO(file_bytes)).convert("RGB")
images.append(img)
if not images:
raise ValueError("No valid images provided")
images[0].save(
output_pdf_path,
save_all=True,
append_images=images[1:]
)
return str(output_pdf_path)
|