Skip to content

RockerzXY/pdfiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pdfiler ─ cli-утилита для создания PDF из изображений

Описание

pdfiler — это утилита для создания PDF-файлов из изображений. Она позволяет конвертировать изображения в формат PDF с возможностью настройки качества изображений внутри итогового файла. Утилита поддерживает работу с изображениями как в виде отдельных файлов, так и целыми папками. Также есть опция для удаления исходных файлов после их обработки.

Утилита использует следующие Python-библиотеки:

  • Pillow — для обработки изображений.
  • Click — для создания командного интерфейса.

Они будут автоматически установлены через pip в виртуальное окружение при выполнении скрипта установки. Не волнуйтесь, хост-система засорена не будет :)

Установка с помощью скрипта (apt-only!)

Для установки и использования утилиты выполните следующие шаги:

  1. Запустите установочный скрипт

    sudo bash -c "$(wget https://raw.githubusercontent.com/RockerzXY/pdfiler/refs/heads/master/setup.sh -O -)"
  2. Установка завершена

    После установки вы можете вызвать справку с помощью команды:

    pdfiler -h

    Это покажет доступные опции и примеры использования.

Ручная установка

Для установки своими руками утилиты выполните следующие шаги:

  1. Установите необходимые пакеты

    Убедитесь, что пакеты wget, git, python3, python3-venv установлены.

  2. Клонируйте репозиторий

    Склонируйте репозиторий и перейдите в него:

    git clone https://github.com/RockerzXY/pdfiler/
    cd pdfiler
  3. Перемещение файлов в целевую директорию

    Переместите все файлы проекта в /usr/local/pdfiler:

    sudo mkdir -p /usr/local/pdfiler
    sudo cp -r ./* /usr/local/pdfiler/
  4. Создание виртуального окружения

    Чтобы не засорять python-окружение хостовой системы перейдём в директорию установки и создадим виртуальное окружение. Далее установим необходимые для утилиты библиотеки.

    У вас может не получится зайти в окружение, используя команду sudo, тогда попробуйте от суперпользователя, введя sudo su

    cd /usr/local/pdfiler
    sudo python3 -m venv venv
    sudo source ./venv/bin/activate
    pip install --upgrade pip
    pip install -r ./requirements.txt
  5. Выдача прав на исполнение

    Установите права на исполнение для файла pdfiler.py:

    sudo chmod +x ./pdfiler.py
  6. Создание скрипта для запуска

    Создайте исполняемый скрипт в директории /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
  7. Очистка (опционально)

    Удалите склонированный репозиторий. Не забыли где он находится?

  8. Установка завершена

    Установка завершена. Теперь можно использовать утилиту. Проверьте, что она работает:

    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 — Подробный вывод процесса.

Примеры использования

  1. Явно указаны файлы:

    pdfiler 1.jpg 2.jpg -o gallery.pdf -q 80 -v
  2. Автоматический сбор файлов из директории с использованием auto-stamp:

    pdfiler auto-stamp -d /path/to/images -o gallery.pdf -q 80 -v

    В этом примере утилита автоматически собирает изображения из указанной директории и сортирует их по времени изменения. Файлы должны быть указаны как относительные имена или в режиме auto-stamp, который будет использовать все изображения в папке.

Структура проекта

.
├── pdfiler.py          # Основной исполняемый файл утилита
├── requirements.txt    # Список зависимостей для установки
├── setup.sh            # Скрипт для автоматической установки
└── .gitignore

Логика работы

  1. При использовании -d утилита ищет все изображения в указанной директории и сортирует их по времени изменения.
  2. При обработке изображений утилита проверяет их валидность и преобразует изображения с альфа-каналом или палитрой в формат RGB.
  3. Утилита сохраняет итоговый PDF с указанным качеством изображений. Также есть возможность удалить исходные файлы после их обработки.

Разработка и улучшения

Если у вас есть предложения по улучшению утилиты или репозитория, не стесняйтесь открывать issue или pull request.

Планы

  • Поддержка дополнительных форматов вывода (например, PNG, TIFF).
  • Добавить больше схем для автоматического создания PDF.
  • Добавление опции для изменения размера изображений перед добавлением в PDF.

Лицензия

Этот проект распространяется под лицензией GPL v3. Вы можете свободно использовать и модифицировать код при условии соблюдения требований этой лицензии. Подробнее см. в файле LICENSE.

About

cli-утилита для создания PDF из изображений

Topics

Resources

License

Stars

Watchers

Forks