Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save GodSaveEarth/e4ceaf406f5032772336656d29dbd798 to your computer and use it in GitHub Desktop.

Select an option

Save GodSaveEarth/e4ceaf406f5032772336656d29dbd798 to your computer and use it in GitHub Desktop.
Печать кодов Честный знак в Bartender.md

Печать кодов Честный знак в Bartender

или

Выгрузка КИЗ Честный знак с криптохвостом

Проблема

  • Сайт системы Честный знак позволяет печатать коды в pdf, eps и сохранять текстом в csv.
  • Но в текстовом виде сайт отдает только часть кода, без "криптохвоста".
  • Если такой код распечатать самостоятельнот, то при сканировании, приложение всегда выдает "Сомнительный товар"
  • Если мы хотим печатать коды самостоятельно в bartender, нам надо получить полный код с криптохвостом.

Решение

  • Выгрузить коды в eps из честного знака
  • Перевести все коды в bmp
  • Распознать код полностью и записать в текстовый файл
  • разместить в макете Bartender как Datamatrix

Пошагово

Делал все в Ubuntu под windows (WSL). Напрямую под windows не удалось, т.к. нет готовой собранной программы dmtxread. Существует библиотека, но завести ее под C# мне не удалось.

Устаналиваем пакет dmtx-utils для распознавания датаматрикса в текст:

sudo apt update
sudo apt install dmtx-utils

Чистим каталог от старых файлов

rm out.txt; rm *.bmp;

Кладем с наш каталог все eps коды, скачанные с Честного знака. Я тестировал на 13000 файлов.

Переводим все eps файлы в bmp с помощью ghostscript

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=bmpmono -r300 -dEPSCrop -sOutputFile=out%d.bmp *.eps;

Распознаем каждый файл и пишем код в текстовый файл:

for filename in *.bmp; do	
    dmtxread -n $filename >> out.txt;
done

Опционально: убрать дубликаты из текстового файла

awk -i inplace '!seen[$0]++' out.txt

Добавляем datamatrix в bartender. Указываем источником данных наш файл. Разделителем ставим tab (важно).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment