Задать вопрос
dimap101
@dimap101
ИП, разработка АИС, микроконтроллеры

Как напечатать спецсимволы на термопринтерах Godex?

Есть несколько термопринтеров Godex, на них печатаются коды для "Честного знака".
Стандарт Datamatrix кода для "Честного знака" (точнее это GS1 Datamatrix) предусматривает первый символ и разделение некоторых полей (91, 92, 93) по символу . Уже давно где-то в примерах мы нашли, что для печати в Datamatrix на EZPL нужно поставить последовательность "~1" в команду XRB (печать Datamatrix), программа GoLabel при формировании этикетки с Datamatrix кодом (если подставляешь символ GS) выводит его в EZPL в виде "", но если отправить это на принтер - то так и напечатается , то же и с

Печать ведется прямая, на языке EZPL, по сети на порт 9100. Документацию читали - пока не помогло.
Единстыенное, что нашли - при печати штрихкода Code 128 с нужно подставить в данные комады BQ - "&G", но это не работает для команды XRB (печать Datamatrix)

Вопрос - как в начало Datamatrix вставить при печати на EZPL через команду XRB ?

P.S. в большинстве случаев это не на что не влияет, так как сканер при сканировании Datamatrix удаляет как признак начала, но сохраняет как разделитель. Но есть пара случаев, когда это не проходит:
- какая то экзотическая модель кассового аппарата (мы пока не определили ее)
- программа "ЧЗ бизнес", которая четко говорит, что структура Datamatrix не соотвествует стандарту (причем обычная программа "Честный знак" нормально коды без переваривает.
  • Вопрос задан
  • 140 просмотров
Подписаться 2 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    Нейросети для изображений и видео
    2 месяца
    Далее
  • Нетология
    Режиссёр монтажа
    8 месяцев
    Далее
  • НАДПО
    Редактор СМИ. Московский диплом
    670 ???
    Далее
Пригласить эксперта
Ответы на вопрос 1
@Aleksei_N
В GS1 DataMatrix две разные роли играют две разные вещи:

  • в начале символа должен стоять FNC1 — по нему ридер понимает, что это GS1 DataMatrix (идентификатор символики ]d2), а не обычный DataMatrix (]d1);
  • между полями переменной длины (после серийного номера 21, после 91 и т. д.) стоит разделитель. Внутри символа он тоже кодируется как FNC1, а сканер выдаёт его как символ GS (ASCII 29).


Если в начале оказался GS вместо FNC1, символ формально становится обычным DataMatrix, у которого первый символ — GS. Приложение «Честный ЗНАК» такое прощает, а кассы и программы, которые проверяют структуру строго (как «ЧЗ Бизнес»), — нет.

Поэтому в GoLabel II у объекта DataMatrix нужно включить флажок «GS1 Datamatrix»: тогда принтер сам ставит FNC1 в начало. Разделители между полями оставьте как есть, не добавляйте GS вручную в начало строки.

Проверить результат можно любым ридером, который показывает идентификатор символики: должно быть ]d2.

Подробнее про FNC1 и GS: https://libscanner.com/articles/razdelitel-gs-gs1/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы