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