ZPL - 条形码打印时缺少数字
Posted
技术标签:
【中文标题】ZPL - 条形码打印时缺少数字【英文标题】:ZPL - Barcode Missing a digit when printed 【发布时间】:2012-12-22 15:37:31 【问题描述】:我正在尝试使用以下 ZPL 和 Zebra ZP 450 打印机在标签上打印 Code 128 条形码:
^BY3^BCN,112,N^FO090,660^FD>;>89102100^FS
我希望条形码扫描为“9102100”。但是,当我扫描打印的条形码时,它显示为“910210”——截去最后一个数字。
如果我更改最后一位数字,它仍然会被切断。但是如果我在末尾添加更多数字,例如“9102100357”,条形码正确读取为“9102100357”。
为什么在这种特殊情况下我会“丢失”一个数字?
【问题讨论】:
【参考方案1】:^FD
块内的 >;
告诉代码 128 条码进入一个子集(在本例中为子集 C),它强制条码中的数据为数字对 (00 - 99)。任何未以数字对形式提供的数据都将被忽略。如果你把一个字母放在那里,它会忽略那对。在您的情况下,9102100
有奇数个数字,因此它会忽略最后一个。例如,如果您添加另一个0
,它会将所有字母放入条形码中。
将条形码放入子集 C 的 ;>
不是默认值。子集 B 或 :>
是默认设置,允许在条形码中编码任何字符。所以你可以用:>
替换;>
,或者完全删除;>
,它会正确打印出来。
查看 ZPL 编程手册中的 ^BC
文档,了解有关 Code 128 子集和数据验证的更多信息
【讨论】:
你拯救了我的一天。 这是我听过的最愚蠢的功能之一。 Zebra 的 ZPL Designer spftware 似乎默认使用这个子集。【参考方案2】:参见ZPL Programming Guide 的第 92 页。
此问题可能已在固件更新中得到修复,见下文:
示例:这是一个模式参数设置为 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。”
【讨论】:
以上是关于ZPL - 条形码打印时缺少数字的主要内容,如果未能解决你的问题,请参考以下文章