Files
label-extractor/README.md
gkonoplya 6850f3672e Implement CLI commands for batch extraction and PDF generation
- Added command-line interface using Click for `batch_extractor.py` to handle extraction from ZIP and PDF files.
- Enhanced `save_to_excel` function to create parent directories for output files.
- Updated `build_pdf.py` to include a CLI for generating PDF labels from Excel data.
- Improved README.md with detailed usage instructions for the new CLI commands.
- Added `click` to requirements.txt for command-line functionality.
2026-02-21 13:20:08 +03:00

78 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LabelExtractor (Честный ЗНАК / CRPT)
Комплексное решение для работы с кодами маркировки «Честный ЗНАК». Состоит из двух мощных утилит:
1. **Batch Extractor:** Автоматически вытаскивает коды из выгрузок ЧЗ (PDF или ZIP-архивы) и собирает их в удобную Excel-таблицу.
2. **PDF Builder:** Генерирует промышленные макеты этикеток (58x40 мм) для термопринтеров, объединяя извлеченные коды и описания товаров.
## 🌟 Главная фича: Утилита массового извлечения кодов (`batch_extractor.py`)
Вам больше не нужно вручную копировать коды или пытаться достать их из картинок. В проекте есть специальная утилита, которая сама "прочитает" исходные файлы от Честного ЗНАКа и создаст готовый Excel-файл (со списком текстовых значений кодов и их Base64-представлением, сохраняющим скрытые спецсимволы GS1/FNC1).
Утилита поддерживает два формата исходников:
* **Многостраничные PDF-файлы** (где на каждой странице расположена этикетка).
* **ZIP-архивы**, внутри которых лежат векторные `EPS` файлы.
## Требования и установка
Проект написан на Python 3. Установите необходимые зависимости из `requirements.txt`:
```bash
pip install -r requirements.txt
```
**Зависимости:**
* `pillow`, `zxing-cpp` — чтение штрихкодов из изображений.
* `reportlab`, `treepoem` — генерация векторных PDF-файлов и штрихкодов.
* `pandas`, `openpyxl` — чтение и создание Excel-таблиц.
* `click` — создание удобного интерфейса командной строки.
*Примечание: Убедитесь, что архив `Ghostscript.zip` распакован в папку `Ghostscript` в корне проекта.*
## 📋 Порядок работы (Как получить готовые этикетки)
Процесс разделен на три простых шага в терминале:
### ШАГ 1: Извлечение кодов в Excel (Создание списка КМ)
Возьмите файл, который вы скачали из системы «Честный ЗНАК», и натравите на него утилиту-экстрактор.
**Если у вас ZIP-архив с этикетками:**
```bash
python batch_extractor.py from-zip "C:\путь\к\архиву\ЧЗ.zip" "извлеченныеоды.xlsx"
```
**Если у вас многостраничный PDF-файл:**
```bash
python batch_extractor.py from-pdf "C:\путь\к\файлу\ЧЗ.pdf" "извлеченныеоды.xlsx"
```
*Результат:* Рядом появится файл `извлеченныеоды.xlsx`. В нем две колонки: текстовый код и его Base64 (именно он нужен для точной печати).
### ШАГ 2: Подготовка описания товаров
Откройте шаблон `Resources/ШАблон для загрузки этикеток.xlsx`. Внесите данные о товарах строго по порядку колонок (слева направо). Программа читает именно номера столбцов, а не их заголовки:
1. **GTIN** (14 цифр)
2. **EAN** (13 цифр)
3. **Описание** (название товара, до 200 символов, длинный текст автоматически перенесется или обрежется)
4. **Артикул**
5. **Цвет**
6. **Размер**
7. **Организация**
### ШАГ 3: Генерация этикеток для печати (`build_pdf.py`)
Теперь скрестим наши коды из Шага 1 и описания из Шага 2. Запустите генератор, указав три пути: файл с кодами, файл-шаблон с описаниями и папку для сохранения готовых этикеток.
```bash
python build_pdf.py "извлеченныеоды.xlsx" "Resources/ШАблон для загрузки этикеток.xlsx" "готовые_этикетки/"
```
*Результат:* В папке `готовые_этикетки/` программа создаст аккуратные PDF-файлы (по одному на каждый GTIN). Формат 58х40 мм, все штрихкоды и шрифты оптимизированы для термопринтеров без размытия. Можно смело отправлять на печать!
## Внутренняя структура проекта
* `batch_extractor.py` — CLI утилита для извлечения кодов в Excel.
* `build_pdf.py` — Главный оркестратор. Группирует коды и генерирует макеты этикеток.
* `read_image.py` — Низкоуровневый движок чтения DataMatrix через `zxing-cpp`.
* `render_eps.py` — Вспомогательный модуль для работы с EPS.
* `Resources/` — Папка с графикой (логотипы EAC, ЧЗ) и Excel-шаблоном.