Найти тему
Свой Айтишник

Python: Сохраняем изображения (jpg, png, gif, bmp) в PDF книгу. Из jpg в pdf

Привет! Давно не было практики на Python, давайте исправим это и напишем небольшой код, где будем картинки конвертировать в pdf файлы.

Установим необходимые библиотеки:

pip install fpdf
pip install Pillow

PyFPDF - это библиотека для генерации PDF-документов на Python. FPDF “Free”-PDF.

Pillow — это свободно распространяемая библиотека для работы с изображениями.

Напишем код (напомню готовый код можно скачать в моём Telegram канале.)

1. Импортируем ранее установленные библиотеки:

-2

2. Создаем класс PDF и наследуем FPDF. Далее в коде будут комментарии над каждым действием:

-3

3. Создаем объект PDF и укажем путь к папке с изображениями:

-4

4. Получаем список файлов изображений в нашей папке img и сортируем этот список:

-5

5. Циклом добавляем каждое изображение в PDF:

-6

6. Дело за малым. Сохраняем PDF файл!

-7

Тестируем!

В папку img расположим несколько картинок:

-8

Запустим код:

-9

В корне с кодом создался pdf файл output.pdf

-10

Открываем и любуемся! (масштаб я уменьшил, что бы уместилось 3 страницы)

-11

Казалось бы, можно успокоится на этом, но давайте теперь сделаем графический интерфейс!

Модернизируем наш код. (его так же можно будет скачать в моём Telegram канале)

Создадим простой графический интерфейс с помощью библиотеки `tkinter`. Этот интерфейс будет включать кнопки для выбора изображений и сохранения PDF-файла, а также текстовый бокс для ведения лога.

Большинство дистрибутивов Python уже включают `tkinter`, поэтому его, возможно, устанавливать не нужно.

Импортируем необходимые библиотеки:

-12

Создадим функцию для добавления изображений в PDF (комментарии есть в коде):

-13

Создадим функцию для выбора изображений:

-14

Функция для сохранения PDF:

-15

Теперь самое интересное, создадим графический интерфейс:

-16

Давайте тестировать!

При запуске видим главное окно, с просьбой выбрать изображения:

-17

Послушаемся и кликнем по кнопке выбрать изображения:

-18

Выберем файлы.

В логе видно, что файлы погрузились:

-19

Пробуем сохранить в PDF:

-20

Выбираем путь для сохранения и имя pdf файла.

В логе видно, что PDF файл сохранен!

-21

При его открытии мы получаем, точно такой же результат как и в коде выше без графического интерфейса!

Заключение:

Вот таким не сложным образом можно конвертировать картинки в pdf, при желании можно дополнить код новым функционалом, например добавление страниц, удаление страниц, объединение PDF, сжатие PDF и многое другое, такая программа уже не будет уступать платным аналогам. Ну а для распознавания текста потребуется уже OCR ресурсы. Возможно чуть позже попробую написать про это статью и код =)

Напоминаю, что код вы сможете найти и скачать в моём Telegram канале "Свой Айтишник" pdf.py - код без интерфейса и create_pdf.py - с графическим интерфейсом.

До скорых встреч!