Привет! Давно не было практики на Python, давайте исправим это и напишем небольшой код, где будем картинки конвертировать в pdf файлы.
Установим необходимые библиотеки:
pip install fpdf
pip install Pillow
PyFPDF - это библиотека для генерации PDF-документов на Python. FPDF “Free”-PDF.
Pillow — это свободно распространяемая библиотека для работы с изображениями.
Напишем код (напомню готовый код можно скачать в моём Telegram канале.)
1. Импортируем ранее установленные библиотеки:
2. Создаем класс PDF и наследуем FPDF. Далее в коде будут комментарии над каждым действием:
3. Создаем объект PDF и укажем путь к папке с изображениями:
4. Получаем список файлов изображений в нашей папке img и сортируем этот список:
5. Циклом добавляем каждое изображение в PDF:
6. Дело за малым. Сохраняем PDF файл!
Тестируем!
В папку img расположим несколько картинок:
Запустим код:
В корне с кодом создался pdf файл output.pdf
Открываем и любуемся! (масштаб я уменьшил, что бы уместилось 3 страницы)
Казалось бы, можно успокоится на этом, но давайте теперь сделаем графический интерфейс!
Модернизируем наш код. (его так же можно будет скачать в моём Telegram канале)
Создадим простой графический интерфейс с помощью библиотеки `tkinter`. Этот интерфейс будет включать кнопки для выбора изображений и сохранения PDF-файла, а также текстовый бокс для ведения лога.
Большинство дистрибутивов Python уже включают `tkinter`, поэтому его, возможно, устанавливать не нужно.
Импортируем необходимые библиотеки:
Создадим функцию для добавления изображений в PDF (комментарии есть в коде):
Создадим функцию для выбора изображений:
Функция для сохранения PDF:
Теперь самое интересное, создадим графический интерфейс:
Давайте тестировать!
При запуске видим главное окно, с просьбой выбрать изображения:
Послушаемся и кликнем по кнопке выбрать изображения:
Выберем файлы.
В логе видно, что файлы погрузились:
Пробуем сохранить в PDF:
Выбираем путь для сохранения и имя pdf файла.
В логе видно, что PDF файл сохранен!
При его открытии мы получаем, точно такой же результат как и в коде выше без графического интерфейса!
Заключение:
Вот таким не сложным образом можно конвертировать картинки в pdf, при желании можно дополнить код новым функционалом, например добавление страниц, удаление страниц, объединение PDF, сжатие PDF и многое другое, такая программа уже не будет уступать платным аналогам. Ну а для распознавания текста потребуется уже OCR ресурсы. Возможно чуть позже попробую написать про это статью и код =)
Напоминаю, что код вы сможете найти и скачать в моём Telegram канале "Свой Айтишник" pdf.py - код без интерфейса и create_pdf.py - с графическим интерфейсом.
До скорых встреч!