скрипт форматирования изображения в pdf документ (как из картинки сделать pdf документ)

Не нужно отправлять фото своих документов на сервисы по обработке и конвертированию их в pdf и если нет времени осваивать и загружать программы по работе с pdf форматом. Можно переконвертировать самому с помощью Python скрипта. Который с помощью модуля PyInstaller можно собрать в exe исполняемый файл программу которая запустится на windows os без установки интерпретатора то есть среды Python.


####
#первый скрипт делает под каждую картинку свой pdf документ
###
import os
from PIL import Image # pip install pillow
from reportlab.lib.pagesizes import letter # pip install reportlab
from reportlab.pdfgen import canvas

def convert_images_to_pdf(input_folder, output_folder):
    # Создаем выходную папку, если ее нет
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # Проходим по всем файлам входной папки
    for filename in os.listdir(input_folder):
        if filename.endswith(".png") or filename.endswith(".jpg") or filename.endswith(".jpeg"):
            # Открываем изображение
            img_path = os.path.join(input_folder, filename)
            img = Image.open(img_path)

            # Создаем PDF файл для текущего изображения
            pdf_path = os.path.join(output_folder, os.path.splitext(filename)[0] + ".pdf")
            c = canvas.Canvas(pdf_path, pagesize=img.size)

            # Вставляем изображение на страницу PDF
            c.drawImage(img_path, 0, 0, img.size[0], img.size[1])

            # Завершаем создание PDF файла
            c.save()

if __name__ == "__main__":
    input_folder = input("Введите путь к папке с изображениями: ")
    output_folder = input("Введите путь к папке для сохранения PDF файлов: ")

    convert_images_to_pdf(input_folder, output_folder)
    
####
#второй скрипт делает один pdf документ из всех картинок
####
import os
from PIL import Image  #pip install pillow
from reportlab.lib.pagesizes import letter # pip install reportlab
from reportlab.pdfgen import canvas

def images_to_one_pdf(input_folder, output_file):
    # Создаем пустой PDF файл
    c = canvas.Canvas(output_file, pagesize=letter)

    # Проходим по всем файлам входной папки
    for filename in os.listdir(input_folder):
        if filename.endswith(".png") or filename.endswith(".jpg") or filename.endswith(".jpeg"):
            # Открываем изображение
            img_path = os.path.join(input_folder, filename)
            img = Image.open(img_path)

            # Получаем размеры изображения
            width, height = img.size

            # Добавляем страницу в PDF файл
            c.setPageSize((width, height))
            c.drawImage(img_path, 0, 0, width, height)  # Вставляем изображение на текущую страницу PDF
            c.showPage()  # Переходим к следующей странице

    # Завершаем создание PDF файла
    c.save()

if __name__ == "__main__":
    input_folder = input("Введите путь к папке с изображениями: ")
    output_file = input("Введите путь для сохранения PDF файла c именем самого файла\n в формате папка/файл.pdf: ")

    images_to_one_pdf(input_folder, output_file)
    
На главную YouTube Telegram Предыдущая страница Следующая страница