Добавлены скрипты сборки для кроссплатформенных двоичных файлов и лицензия GPL.

- Добавлен файл LICENSE с лицензией GNU General Public License версии 3.0.
- Создан скрипт PowerShell (build-all.ps1) для сборки двоичных файлов Windows и Linux из Windows с использованием кросс-компиляции.
- Разработан скрипт сборки Linux (build-linux.sh) для сборки двоичных файлов Linux.
- Реализован скрипт PowerShell (build-windows.ps1) для сборки двоичных файлов Windows.
- Каждый скрипт сборки включает упаковку и генерацию контрольной суммы SHA256 для двоичных файлов.
This commit is contained in:
Dmitriy Fofanov
2025-11-05 13:05:49 +03:00
parent 77af408c9e
commit eee9a4a093
33 changed files with 1091 additions and 126 deletions

View File

@@ -1,19 +1,33 @@
# PDF Compressor {{VERSION}}
# Universal File Compress {{VERSION}}
Мощный инструмент для сжатия PDF-файлов с интуитивным текстовым интерфейсом.
Высокопроизводительный инструмент на Go для массового сжатия PDF и изображений (JPEG/PNG) с удобным TUI-интерфейсом, гибкой конфигурацией и модульной архитектурой.
## ✨ Новые возможности
- Рекурсивное сканирование директорий для поиска PDF-файлов
- Улучшенный пользовательский интерфейс с прогресс-индикатором
- Оптимизация производительности при обработке больших файлов
- Атомарная замена файлов с резервным копированием
- Поддержка конфигурационных файлов YAML
## ✨ Ключевые возможности
## 🐛 Исправления и улучшения
- Исправлена обработка файлов с нестандартными именами
- Улучшена стабильность при работе с поврежденными PDF
- Оптимизирован расход памяти при сжатии больших документов
- Исправлены проблемы с кодировкой имен файлов
**Сжатие файлов:**
- 📄 **PDF** — два алгоритма на выбор: PDFCPU (скорость) и UniPDF (качество)
- 🖼️ **Изображения** — JPEG (1050% качество), PNG (адаптивная оптимизация)
- 🔄 **Интеллектуальное сжатие** — автоматический выбор оригинала при неэффективном сжатии
**Производительность и обработка:**
- 🚀 Параллельная обработка с настраиваемым количеством воркеров
- 📁 Рекурсивное сканирование с сохранением структуры папок
- ⚡ Пакетная обработка больших коллекций файлов
- 🔁 Повторы при ошибках (retry) и таймауты
**Интерфейс и управление:**
- 🎨 TUI (Text User Interface) — настройка, запуск и мониторинг прогресса
- ⚙️ YAML конфигурация — гибкое управление параметрами сжатия
- 📊 Детальное логирование в файл и консоль с ротацией
- 🔧 Clean Architecture — расширяемая модульная структура
## 🆕 Что нового в этом релизе
- Реализован выбор между алгоритмами PDFCPU и UniPDF для PDF
- Добавлена поддержка сжатия изображений (JPEG, PNG)
- Улучшен TUI с прогресс-индикатором и статистикой обработки
- Оптимизирована параллельная обработка больших файлов
- Добавлена атомарная замена файлов с резервным копированием
- Расширена конфигурация через YAML-файлы
## 📦 Установка и запуск
@@ -31,43 +45,46 @@
| Платформа | Архитектура | Файл для скачивания |
|-----------|-------------|---------------------|
| **Windows** | x64 | `pdf-compressor-{{VERSION}}-windows-amd64.zip` |
| **Linux** | x64 | `pdf-compressor-{{VERSION}}-linux-amd64.zip` |
| **Linux** | ARM64 | `pdf-compressor-{{VERSION}}-linux-arm64.zip` |
| **macOS** | Intel x64 | `pdf-compressor-{{VERSION}}-darwin-amd64.zip` |
| **macOS** | Apple Silicon | `pdf-compressor-{{VERSION}}-darwin-arm64.zip` |
| **Windows** | x64 (amd64) | `compress-{{VERSION}}-windows-amd64.zip` |
| **Windows** | ARM64 | `compress-{{VERSION}}-windows-arm64.zip` |
| **Linux** | x64 (amd64) | `compress-{{VERSION}}-linux-amd64.tar.gz` |
| **Linux** | ARM64 | `compress-{{VERSION}}-linux-arm64.tar.gz` |
## 🚀 Использование
После установки программу можно запустить несколькими способами:
**Интерактивный режим:**
**Интерактивный режим (TUI):**
```bash
./pdf-compressor
./compress
# Windows: .\compress.exe
```
**Пакетная обработка:**
**Пакетная обработка директории:**
```bash
./pdf-compressor -input /path/to/pdfs -output /path/to/compressed
./compress --input /path/to/files --output /path/to/compressed --config config.yaml
```
**Обработка одного файла:**
**Обработка с выбором алгоритма:**
```bash
./pdf-compressor -file document.pdf
# PDF через PDFCPU (быстрее)
./compress --input ./pdfs --algorithm pdfcpu
# PDF через UniPDF (выше качество)
./compress --input ./pdfs --algorithm unipdf
```
**Сжатие изображений:**
```bash
./compress --input ./images --output ./compressed --format jpeg --quality 85
```
## 📖 Документация
- **README.md** - основная документация
- **config.yaml.example** - пример конфигурационного файла
- **RELEASE_GUIDE.md** - руководство по релизам
## 🆘 Поддержка
Если у вас возникли вопросы или проблемы:
1. Проверьте документацию в репозитории
2. Создайте Issue с описанием проблемы
3. Приложите лог-файлы для диагностики
- **README.md** — полное руководство по использованию и конфигурации
- **config.yaml.example** пример конфигурационного файла с комментариями
- Документация по архитектуре — описание Clean Architecture подхода
- Примеры использования — различные сценарии обработки файлов
---
**Благодарим за использование PDF Compressor!** 🙏
**Благодарим за использование Compress!** 🙏