Python PIL / Pillow - Pad изображение до нужного размера (напр. А4)


У меня есть изображение JPG/PNG/PDF, и я хотел бы получить его на странице формата А4, по центру, как PDF (к вашему сведению: так что это легко для моих конечных пользователей, чтобы отобразить/распечатать его).

В любом порядке:

  • pad изображение, чтобы заполнить A4 (с белым)
  • преобразование в PDF

Я могу сделать im.save('filename.pdf', 'PDF', resolution=100.0), чтобы сохранить объект Image в PDF, но я не знаю, как выполнить другую задачу.

Я бы действительно предпочел использовать подушку, но другие ответы приветствуются.
1 5

1 ответ:

from PIL import Image

im = Image.open(my_image_file)
a4im = Image.new('RGB',
                 (595, 842),   # A4 at 72dpi
                 (255, 255, 255))  # White
a4im.paste(im, im.getbbox())  # Not centered, top-left corner
a4im.save(outputfile, 'PDF', quality=100)

Это гипотеза, что my_image_file имеет такое же разрешение, 72dpi.