Создание pdf документа на основе файлов изображений. Программа может использоваться студентами для хранения фотографий лекций или других записей в удобном для чтения формате.
Для работы приложения необходимо следующее программное обеспечение:
- Python версии 3.8.2 и выше;
- Установленные в системе шрифты DejaVu fonts;
- Программа для конвертирования в pdf Pandoc;
- Поддержка стилизации создаваемых pdf документов:
После установки требуемого ПО необходимо в папке проекта создать виртуальное окружение:
# Создание виртуального окружения
$ python3 -m pip install --user virtualenv
$ python3 -m venv env
# Активация виртуального окружения
$ source env/bin/activate
В созданном виртуальном окружении нужно установить необходимые пакеты, описанные в requirements.txt:
# Установка необходимых пакетов
(env) $ pip install -r requirements.txt
При возникновении конфликта пакета PyQt5 из виртуального окружения с пакетом, имеющимся в системе, необходимо удалить пакет из виртуального окружения и заменить его ссылкой:
# Замена пакета PyQt5 на ссылку из системы
$ PyQt5sys="/usr/lib/python3.8/site-packages/PyQt5"
$ PyQt5env="env/lib/python3.8/site-packages/PyQt5"
$ sudo rm -rf "$PyQt5env"
$ ln -s "$PyQt5sys" "$PyQt5env"
На Linux для развертывания приложения можно воспользоваться bash-скриптом scripts/install.sh.
После установки всего необходимого программа запускается из виртуального окружения:
# Установка необходимых пакетов
(env) $ python3 kate-abstract-python
Программа сканирует папку notes на наличие папок конспектов. Папка конспекта, в свою очередь, разбивается на подпапки в зависимости от структуры генерируемого pdf документа. Изображения распределяются по папкам разделов. Если генерируемый файл не содержит разделов, все файлы изображений помещаются в папку с названием Основной в папке конспекта.
Пример файловой структуры папок конспектов в notes:
notes/
--> Конспект 1
--> Основной
--> Картинка 1
--> Картинка 2
--> Картинка 3
--> Конспект 2
--> Раздел 1
--> Картинка 4
--> Картинка 5
--> Раздел 2
--> Картинка 6
--> Картинка 7
--> Картинка 8
...
Создание папки конспекта в notes:
Для создания pdf документа конспекта нужно выбрать требуемую папку в списке и нажать Создать (при необходимости список папок конспектов можно Обновить).
После этого открывается диалоговое окно настройки конспекта, в котором можно изменить порядок разделов, а также исключить не нужные разделы. Пользователь может выбрать, требуется ли ему создавать содержание в начале генерируемого pdf файла, а также имеется возможность выполнить сжатие документа с помощью сервиса iLovePDF. Для работы с данным сервисом необходимо зарегистрировать аккаунт разработчика и получить Secret Key. Данный ключ нужно записать в текстовый файл config/ilovepdf.
Сгенерированный pdf документ будет лежать в папке конспекта: