pdfiler — это утилита для создания PDF-файлов из изображений. Она позволяет конвертировать изображения в формат PDF с возможностью настройки качества изображений внутри итогового файла. Утилита поддерживает работу с изображениями как в виде отдельных файлов, так и целыми папками. Также есть опция для удаления исходных файлов после их обработки.
Утилита использует следующие Python-библиотеки:
Pillow— для обработки изображений.Click— для создания командного интерфейса.
Они будут автоматически установлены через pip в виртуальное окружение при выполнении скрипта установки. Не волнуйтесь, хост-система засорена не будет :)
Для установки и использования утилиты выполните следующие шаги:
-
Запустите установочный скрипт
sudo bash -c "$(wget https://raw.githubusercontent.com/RockerzXY/pdfiler/refs/heads/master/setup.sh -O -)" -
Установка завершена
После установки вы можете вызвать справку с помощью команды:
pdfiler -h
Это покажет доступные опции и примеры использования.
Для установки своими руками утилиты выполните следующие шаги:
-
Установите необходимые пакеты
Убедитесь, что пакеты
wget,git,python3,python3-venvустановлены. -
Клонируйте репозиторий
Склонируйте репозиторий и перейдите в него:
git clone https://github.com/RockerzXY/pdfiler/ cd pdfiler -
Перемещение файлов в целевую директорию
Переместите все файлы проекта в
/usr/local/pdfiler:sudo mkdir -p /usr/local/pdfiler sudo cp -r ./* /usr/local/pdfiler/ -
Создание виртуального окружения
Чтобы не засорять
python-окружение хостовой системы перейдём в директорию установки и создадим виртуальное окружение. Далее установим необходимые для утилиты библиотеки.У вас может не получится зайти в окружение, используя команду
sudo, тогда попробуйте от суперпользователя, введяsudo sucd /usr/local/pdfiler sudo python3 -m venv venv sudo source ./venv/bin/activate pip install --upgrade pip pip install -r ./requirements.txt
-
Выдача прав на исполнение
Установите права на исполнение для файла
pdfiler.py:sudo chmod +x ./pdfiler.py
-
Создание скрипта для запуска
Создайте исполняемый скрипт в директории
/usr/local/bin, который будет запускать утилиту.Выполните команду:
sudo nano /usr/local/bin/pdfiler
И вставьте в файл следующее содержимое:
#!/bin/bash source /usr/local/pdfiler/venv/bin/activate python3 /usr/local/pdfiler/pdfiler.py "$@"
Установите права на исполение для файла
pdfiler:sudo chmod +x /usr/local/bin/pdfiler
-
Очистка (опционально)
Удалите склонированный репозиторий. Не забыли где он находится?
-
Установка завершена
Установка завершена. Теперь можно использовать утилиту. Проверьте, что она работает:
pdfiler -h
-d, --input-dir DIRECTORY— Директория с изображениями. При использовании этой опции файлы должны быть указаны как относительные имена илиauto-stamp.-q, --quality INTEGER— Качество изображений в итоговом PDF (1-100). По умолчанию 80.-o, --output TEXT— Путь для сохранения итогового PDF (обязательная опция).--dry-run— Показать файлы, которые будут обработаны, без создания PDF.-r, --remove-source— Удалить исходные файлы после создания PDF.-v, --verbose— Подробный вывод процесса.
-
Явно указаны файлы:
pdfiler 1.jpg 2.jpg -o gallery.pdf -q 80 -v
-
Автоматический сбор файлов из директории с использованием
auto-stamp:pdfiler auto-stamp -d /path/to/images -o gallery.pdf -q 80 -v
В этом примере утилита автоматически собирает изображения из указанной директории и сортирует их по времени изменения. Файлы должны быть указаны как относительные имена или в режиме
auto-stamp, который будет использовать все изображения в папке.
.
├── pdfiler.py # Основной исполняемый файл утилита
├── requirements.txt # Список зависимостей для установки
├── setup.sh # Скрипт для автоматической установки
└── .gitignore
- При использовании
-dутилита ищет все изображения в указанной директории и сортирует их по времени изменения. - При обработке изображений утилита проверяет их валидность и преобразует изображения с альфа-каналом или палитрой в формат RGB.
- Утилита сохраняет итоговый PDF с указанным качеством изображений. Также есть возможность удалить исходные файлы после их обработки.
Если у вас есть предложения по улучшению утилиты или репозитория, не стесняйтесь открывать issue или pull request.
- Поддержка дополнительных форматов вывода (например, PNG, TIFF).
- Добавить больше схем для автоматического создания PDF.
- Добавление опции для изменения размера изображений перед добавлением в PDF.
Этот проект распространяется под лицензией GPL v3. Вы можете свободно использовать и модифицировать код при условии соблюдения требований этой лицензии. Подробнее см. в файле LICENSE.