gkonoplya 6a2c0d0d35 Add new CLI command for file name extraction and hash generation
- Implemented `get_filenames` command in `batch_extractor.py` to extract file names from a specified directory and generate a dated hash for each file.
- Updated README.md with instructions for using the new command.
- Enhanced PDF generation in `build_pdf.py` by modifying file naming conventions to include article and size.
- Added example PowerShell script for batch processing tasks.
- Introduced new example Excel file for user reference.
2026-02-28 22:34:03 +03:00

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:

pip install -r requirements.txt

Зависимости:

  • pillow, zxing-cpp — чтение штрихкодов из изображений.
  • reportlab, treepoem — генерация векторных PDF-файлов и штрихкодов.
  • pandas, openpyxl — чтение и создание Excel-таблиц.
  • click — создание удобного интерфейса командной строки.

Примечание: Убедитесь, что архив Ghostscript.zip распакован в папку Ghostscript в корне проекта.

📋 Порядок работы (Как получить готовые этикетки)

Процесс разделен на три простых шага в терминале:

ШАГ 0: Подготовить пакетнйы скрипт, если файлов больше чем 1.

Нужно сохранить все файлы с КМ в одну папку.

потом запустить команду, которая достанет имена файлов из этой директории:

python batch_extractor.py get-filenames "C:\путь\к\архиву\" "C:\путь\к\временным файлам\filenames.xlsx"

эта команда создаст файл структуры Префикс/Имя файла

затем надо открыть файл filenames_exaple.xlsx из папки resources и дополнить созданный файл формулами, которые создадут полную питон команду для экстракции КМ

Затем открыть файл resources\run_task_example.ps1 - и вставить в него получившиеся команды

Важно!! Обратить внимание на тип файла, для pdf надо использовать команду from-pdf и аналогично для zip. Кроме того, обязательно надо заменить путь к файлам (он забит в формуле)

потом можно запустить скрипт пакетной обработки.

ШАГ 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. Внесите данные о товарах строго по порядку колонок (слева направо). Программа читает именно номера столбцов, а не их заголовки:

  1. GTIN (14 цифр)
  2. EAN (13 цифр)
  3. Описание (название товара, до 200 символов, длинный текст автоматически перенесется или обрежется)
  4. Артикул
  5. Цвет
  6. Размер
  7. Организация

ШАГ 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-шаблоном.
Description
No description provided
Readme 59 MiB
Languages
Python 88.6%
PowerShell 11.4%