https://github.com/rockerzxy/pdfiler
cli-утилита для создания PDF из изображений
https://github.com/rockerzxy/pdfiler
automation pdf pdf-files pdfiler python
Last synced: 7 months ago
JSON representation
cli-утилита для создания PDF из изображений
- Host: GitHub
- URL: https://github.com/rockerzxy/pdfiler
- Owner: RockerzXY
- License: gpl-3.0
- Created: 2025-03-27T20:56:04.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-03-27T22:58:47.000Z (7 months ago)
- Last Synced: 2025-03-27T23:20:28.052Z (7 months ago)
- Topics: automation, pdf, pdf-files, pdfiler, python
- Language: Python
- Homepage:
- Size: 33.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pdfiler ─ cli-утилита для создания PDF из изображений
## Описание
`pdfiler` — это утилита для создания PDF-файлов из изображений. Она позволяет конвертировать изображения в формат PDF с возможностью настройки качества изображений внутри итогового файла. Утилита поддерживает работу с изображениями как в виде отдельных файлов, так и целыми папками. Также есть опция для удаления исходных файлов после их обработки.Утилита использует следующие Python-библиотеки:
- `Pillow` — для обработки изображений.
- `Click` — для создания командного интерфейса.Они будут автоматически установлены через `pip` в виртуальное окружение при выполнении скрипта установки. Не волнуйтесь, хост-система засорена не будет :)
## Установка с помощью скрипта (`apt`-only!)
Для установки и использования утилиты выполните следующие шаги:1. **Запустите установочный скрипт**
```sh
sudo bash -c "$(wget https://raw.githubusercontent.com/RockerzXY/pdfiler/refs/heads/master/setup.sh -O -)"
```2. **Установка завершена**
После установки вы можете вызвать справку с помощью команды:
```sh
pdfiler -h
```Это покажет доступные опции и примеры использования.
## Ручная установка
Для установки своими руками утилиты выполните следующие шаги:1. **Установите необходимые пакеты**
Убедитесь, что пакеты `wget`, `git`, `python3`, `python3-venv` установлены.
3. **Клонируйте репозиторий**
Склонируйте репозиторий и перейдите в него:
```sh
git clone https://github.com/RockerzXY/pdfiler/
cd pdfiler
```5. **Перемещение файлов в целевую директорию**
Переместите все файлы проекта в `/usr/local/pdfiler`:
```sh
sudo mkdir -p /usr/local/pdfiler
sudo cp -r ./* /usr/local/pdfiler/
```
7. **Создание виртуального окружения**Чтобы не засорять `python`-окружение хостовой системы перейдём в директорию установки и создадим виртуальное окружение. Далее установим необходимые для утилиты библиотеки.
У вас может не получится зайти в окружение, используя команду `sudo`, тогда попробуйте от суперпользователя, введя `sudo su`
```sh
cd /usr/local/pdfiler
sudo python3 -m venv venv
sudo source ./venv/bin/activate
pip install --upgrade pip
pip install -r ./requirements.txt
```9. **Выдача прав на исполнение**
Установите права на исполнение для файла `pdfiler.py`:
```sh
sudo chmod +x ./pdfiler.py
```11. **Создание скрипта для запуска**
Создайте исполняемый скрипт в директории `/usr/local/bin`, который будет запускать утилиту.Выполните команду:
```sh
sudo nano /usr/local/bin/pdfiler
```И вставьте в файл следующее содержимое:
```bash
#!/bin/bash
source /usr/local/pdfiler/venv/bin/activate
python3 /usr/local/pdfiler/pdfiler.py "$@"
```Установите права на исполение для файла `pdfiler`:
```sh
sudo chmod +x /usr/local/bin/pdfiler
```13. **Очистка (опционально)**
Удалите склонированный репозиторий. Не забыли где он находится?
14. **Установка завершена**
Установка завершена. Теперь можно использовать утилиту. Проверьте, что она работает:
```sh
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. **Явно указаны файлы:**
```sh
pdfiler 1.jpg 2.jpg -o gallery.pdf -q 80 -v
```2. **Автоматический сбор файлов из директории с использованием `auto-stamp`:**
```sh
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](LICENSE).