ZPL — в штрих-коде отсутствует цифра при печати

Я пытаюсь напечатать штрих-код Code 128 на этикетке, используя следующий фрагмент ZPL на принтере Zebra ZP 450:

^BY3^BCN,112,N^FO090,660^FD>;>89102100^FS

Я ожидаю, что штрих-код будет сканироваться как «9102100». Однако, когда я сканирую распечатанный штрих-код, он читается как «910210» — последняя цифра обрезается.

Если я изменяю последнюю цифру, она все равно обрезается. Но если я добавлю больше цифр в конец, например. «9102100357», штрих-код правильно читается как «9102100357».

Почему я «теряю» цифру в данном конкретном случае?


person Mike    schedule 08.01.2013    source источник


Ответы (2)


>; внутри вашего блока ^FD говорит штрих-коду code 128 перейти в подмножество (подмножество C в данном случае), что заставляет данные в штрих-коде быть числовыми парами (00 - 99). Любые данные, которые не представлены числовыми парами, игнорируются. Если вы поместите туда букву, она проигнорирует эту пару. В вашем случае 9102100 имеет нечетное количество чисел, поэтому последний игнорируется. Если, например, вы добавите еще один 0, он поместит все буквы в штрих-код.

;>, который помещает штрих-код в подмножество C, не является значением по умолчанию. Подмножество B или :> используется по умолчанию, что позволяет кодировать любой символ в штрих-коде. Таким образом, вы можете заменить ;> на :> или просто полностью удалить ;>, и он будет правильно распечатан.

Ознакомьтесь с документацией ^BC в руководстве по программированию ZPL для получения дополнительной информации о подмножествах Code 128 и проверке данных.

person Ovi Tisler    schedule 09.01.2013
comment
Вы только что спасли мой день. - person Danieboy; 26.05.2016
comment
Это одна из самых глупых функций, о которых я когда-либо слышал. Программное обеспечение ZPL Designer от Zebra, по-видимому, использует это подмножество по умолчанию. - person StingyJack; 16.03.2018

См. стр. 92 Руководство по программированию ZPL.

Возможно, эта проблема была исправлена ​​в обновлении прошивки, см. ниже:

Пример: Это пример с параметром режима, установленным на D*:

^XA
^PON
^LH0,0
^BY2,2.5,145
^FO218,343
^BCB,,Y,N,N,D
^FD(91)0005886>8(10)0000410549>8(99)05^FS
^XZ

D* — При попытке напечатать последний идентификатор приложения с нечетным количеством символов возникала проблема при печати штрих-кодов EAN128 с использованием режима D. Проблема была исправлена ​​в версии микропрограммы V60.13.0.6."

person user7382358    schedule 06.01.2017