ZPL中如何在GS1 DataBar Expanded条码内编码FNC1字符
ZPL生成GS1 DataBar Expanded插入可变长度AI分隔符解决方案
核心实现方法
- 首先要在条码数据字段前添加
^FH命令,开启ZPL的十六进制字符转义能力,未开启该命令时直接输入_1D会被识别为普通文本,无法生成ASCII 29的组分隔符(GS,也就是GS1规范中用来终止可变长度AI的分隔字符)。 - 可变长度AI(如10批次号)的内容结束后,直接插入
_1D作为分隔标识,即可拼接后续的其他AI内容。 - 其他码制的专属转义序列(比如GS1 DataMatrix用的
_1、GS1-128用的>8)不适用于GS1 DataBar系列,无需使用。
修正后ZPL示例
在10(批次)AI后添加21(序列号)AI的完整代码如下:
^XA ^FO100,100^BRN,6,4,,,6 ^FH^FD010858000000000931030001251722022210ABC123_1D21XYZ789^FS ^XZ
注意事项
- 常用的在线ZPL预览工具对GS1 DataBar的特殊分隔符支持存在缺陷,可能出现无法渲染的情况,上述代码在实际斑马物理打印机上可正常生成符合GS1规范的条码。
- 直接插入
#字符的方式仅适用于部分特殊配置场景,通用场景下使用^FH+_1D的组合是官方推荐的标准实现方式。
内容的提问来源于stack exchange,提问作者Viliamm
相关产品推荐
相关产品推荐

