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 - 条形码打印时缺少数字的主要内容,如果未能解决你的问题,请参考以下文章

使用ZPL打印代码39时跳过特殊字符

Escape > 在 Code128 条码、ZPL

如何在垂直标签中垂直打印zpl条码

ZPL - 我们如何控制 ^BC(代码 128)条码的宽度

ZPL 代码 128 与 mPDF 代码 128 输出不匹配

更改刻度名称后,如何修复 seaborn 条形图中缺少的条形?