Объединение нескольких PNG в один PDF-файл в Python

Мне интересно, если есть простой способ объединить несколько изображений PNG в один PDF-файл в Python. Я хочу, чтобы каждое изображение было одной страницей в формате PDF. Является ли pypdf лучшей библиотекой для этого? Любая помощь будет принята с благодарностью.

Спасибо!

5 ответов

from PIL import Image

image1 = Image.open(r'C:/Users/uidg3972/Desktop/New folder/Gopi24.jpg')
image2 = Image.open(r'C:/Users/uidg3972/Desktop/New folder/Gopi-1.jpg')
image3 = Image.open(r'C:/Users/uidg3972/Desktop/New folder/SNP_1291.jpg')

im1 = image1.convert('RGB')
im2 = image2.convert('RGB')
im3 = image3.convert('RGB')

imagelist = [im1,im2,im3]

im1.save(r'C:/Users/uidg3972/Desktop/New folder/mergedImages.pdf',save_all=True, 
append_images=imagelist)

У меня такая же проблема.

Итак, я создал функцию Python для объединения нескольких изображений в один PDF. Код доступен на моей странице github по https://github.com/wizard1989/Unite-multiple-pictures-into-pdf. Он использует "reportlab".

Код основан на ответах по следующим ссылкам:
Создать PDF из списка изображений
Объединение нескольких PNG в один PDF-файл в Python
PNG изображения в один PDF в Python
Как я могу преобразовать все файлы JPG в папке в PDF-файлы и объединить их? https://www.blog.pythonlibrary.org/2012/01/07/reportlab-converting-hundreds-of-images-into-pdfs/

Вот пример того, как объединить изображения в PDF.

У нас есть папка "D:\pictures" с изображениями типов png и jpg. Мы хотим создать из них файл pdf_with_pictures.pdf и сохранить его в той же папке.

outputPdfName = "pdf_with_pictures"
pathToSavePdfTo = "D:\\pictures"
pathToPictures = "D:\\pictures"
splitType = "none"
numberOfEntitiesInOnePdf = 1
listWithImagesExtensions = ["png", "jpg"]
picturesAreInRootFolder = True
nameOfPart = "volume"

unite_pictures_into_pdf(outputPdfName, pathToSavePdfTo, pathToPictures, splitType, numberOfEntitiesInOnePdf, listWithImagesExtensions, picturesAreInRootFolder, nameOfPart)

Недавно я обнаружил, что img2pdf очень полезен и прост в использовании... код выглядит так просто, как показано ниже (и вы можете усложнить его некоторыми другими дополнительными параметрами):

img2pdf *png -o output_all_pngs.pdf

Я надеюсь, что это поможет вам!

Есть порт Python для WKHtmlToPdf:

https://pypi.python.org/pypi/wkhtmltopdf/0.1

Легко создавать разрывы страниц между img теги в HTML-документ, используя CSS, который вы можете передать в эту библиотеку.

http://wkhtmltopdf.org/usage/wkhtmltopdf.txt

Этот код Python преобразует несколько изображений png в один PDF-файл в формате A4:

      i = 0
image_list = []
for x in range(0,5):
    image = Image.open(f'/content/image{i}.png')
    image = image.resize((1250,800))
    im = Image.new('RGB',
              (1240 , 1754), 
              (255, 255, 255))
    im.paste(image,image.getbbox())
    image_list.append(im)
    i+=1

image_list[0].save(r'/content/pdfs.pdf', 'PDF', quality=100, 
save_all=True, append_images=image_list[1:])
Другие вопросы по тегам