Я видел решения, использующие PIL и ReportLab. Какой из этих двух будет лучшим путем? Мои изображения 1152 x 1565 при разрешении 150 dpi
from reportlab.pdfgen import canvas
import os
# page coordinates are in 1/72 nd of an inch
# width = 595 height = 841 ==> A4
# width = 553 height = 751 ==> Image size at 150 dpi
c = canvas.Canvas("sample.pdf")
os.chdir("Images")
for filename in os.listdir():
c.drawImage(filename, 0, 0, width=595, height=841)
c.showPage()
os.chdir("..")
c.save()
Или с помощью PIL я сделал
from PIL import Image
import os
os.chdir("Images")
im_list = []
for file in os.listdir():
img = Image.open(file)
im_list.append(img)
os.chdir("..")
img.save("image.pdf", "PDF", resolution=100.0, save_all=True, append_images=im_list)
Я знаю, что в приведенном выше коде есть небольшая проблема с последней страницей, которая также печатается как страница 1 (которую, я думаю, я могу исправить), но кроме этого есть предпочтительный модуль для записи нескольких изображений на несколько страниц PDF
Спасибо