# 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-шаблоном.