我正在尝试使用以下带有Zebra ZP 450打印机的ZPL打印标签上的Code 128条形码:
^BY3^BCN,112,N^FO090,660^FD>;>89102100^FS
我期待条形码扫描为“9102100”。但是,当我扫描打印的条形码时,它显示为“910210” - 切断最后一位数字。
如果我更改了最后一位数字,它仍然会被切断。但如果我在末尾添加更多数字,例如“9102100357”,条形码正确读作“9102100357”。
为什么我在这种特殊情况下“丢失”一个数字?
答案 0 :(得分:9)
>;
块内的^FD
告诉代码128条形码进入子集(在这种情况下为子集C),这会强制条形码中的数据为数字对(00 - 99)。任何未以数字对提供的数据都将被忽略。如果你在那里写了一封信,它就会忽略那一对。在你的情况下9102100
有一个奇数个数字,所以忽略了最后一个。例如,如果您添加另一个0
,它会将所有字母放在条形码中。
将条形码放入子集C的;>
不是默认值。子集B或:>
是默认值,允许在条形码中编码任何字符。因此,您可以将;>
替换为:>
,或者只是完全删除;>
,它会正确打印出来。
查看ZPL编程手册中的^BC
文档,了解有关Code 128子集和数据验证的更多信息
答案 1 :(得分:0)
见https://www.zebra.com/content/dam/zebra/manuals/en-us/software/zpl-zbi2-pm-en.pdf
第83页此问题可能已在固件更新中修复,请参阅下文
"示例3:这是模式参数设置为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 * - 尝试使用奇数个字符打印最后一个应用程序标识符时出现问题 使用模式D打印EAN128条形码时存在。问题已在固件版本中修复 。V60.13.0.6"