ZPL-如何将GS1应用程序标识符嵌入GS1二维码



我正在尝试在ZPL中编码一个符合GS1的QR码,它将包括许多应用程序标识符:

VAR. COUNT     (30) 18099999
CUST. PART NO. (241) 1184174
BATCH/LOT      (10) MFATA00001
INTERNAL       (91) EA

当使用^BQ创建QR码时,我不知道如何将FNC1字符嵌入到^FD字符串中。

下面是我的第一次尝试。创建GS1-128条形码时,我会使用>8字符来表示可变长度字段。

^FX Test^FS
^XA^MCY^XZ
^XA^LH0,65
^LH0,0^FS
^BQN,2,10^FD>;>83018099999>82411184174>810MFATA00001>891EA^FS
^PQ1,0,0,N
^XZ

这会创建一个二维码,扫描时返回以下字符串,但不被识别为符合GS1:11611193018099999>82411184174>810MFATA00001>891EA

如何配置^FD字段以启用FNC1字符?

QR ZPL问题

在这里查看我最近对二维码的回答:打印ZPLII QR打开url

您缺少^BQ^FD命令的一些参数。

GS1 QR问题

我所做的研究表明,GS1二维码是非常专有的,似乎不容易用ZPL生成。但是,您可以很容易地使用数据矩阵条形码。

看起来您正在尝试创建具有以下应用程序标识符和值的代码:

30: Variable Count of Items: 18099999
241: Variable Customer Part Number: 1184174
10: Variable Batch/Lot Number: MFATA00001
91: Variable Company Internal: EA

GTIN01似乎是必需的,但缺少。我添加了一个临时GTIN字符串。客户零件号241似乎只是本地的,在某些验证全局需求的应用程序中可能无法验证。

完整条形码字符串。

^FD_10112345678901234_110MFATA00001_13018099999_12411184174_191EA^FS

样品标签的完整ZPL

^XA
^FO10,10
^BXN,9,200,40,40,,_
^FD_10112345678901234_110MFATA00001_13018099999_12411184174_191EA^FS
^XZ

希望能有所帮助。

https://www.gs1.org/docs/barcodes/GSCN_16_477_FNC1.pdfhttps://www.zebra.com/us/en/support-downloads/knowledge-articles/creating-gs1-barcodes-with-zebra-printers-for-data-matrix-and-code-128-using-zpl.html

EdHayes3的答案非常棒。

正如Zebra在^BX中指定的那样,转义符是下划线,后面的数字定义了使用哪种FNC。

_1 - > FNC1
_2 - > FNC2
_3 - > FNC3

根据我对Zebra文档的理解,FNC4不受支持。

我唯一不完全同意的是转义每个GS1 AI,因为除了批号之外,最常见的AI都有固定的长度。换言之,我认为没有必要逃离GTIN。不过,在GTIN-12或GTIN-13的情况下,您可能需要记住用前导零来填充它。

根据本文档,您需要ZPL固件版本6.6或更高版本以及ZPL,例如:

^XA
^FO10,10
^BQN,2,5
^FD>83018099999>82411184174>810MFATA00001>891EA^FS
^XZ

然而,有报道称这失败了,并且目前不可能在ZPL中可靠地编码GS1应用程序标识符语法数据。。。

对于最近的固件,>8似乎足以设置";FNC1隐含在第一位置";编码比特流中的模式指示符,其通过将符号标识符修改为"来标记GS1AI语法有效Q3";当读取条形码时。然而,相同的>8字符组合不会导致FNC1非数据字符被编码为不具有预定义长度的AI之后的分隔符。(在与Datamatrix类似的上下文中使用的转义序列_1也没有。)

QR码中有关FNC1的一般详细信息

QR码的内部编码没有一个不同的码字(比特序列)来表示FNC1非数据字符。相反,如果(且仅当)";FNC1在第一";模式有效,当在字母数字编码中,%字符被劫持来表示FNC1(数据"%"字符被转义为%%),而在字节模式中,文字GS控制字符(ASCII值29)被用来表示FNC1:

"其中UCC/EAN[GS1的前名称]规范要求使用FNC1字符(在使用此特殊字符的其他符号体系中)用作数据字段分隔符(即在可变长度数据字段),二维码符号应在字母数字模式中使用%字符,或字符GS(字节值1DHEX)来执行该功能。如果%字符作为数据应编码为%%。在这些符号中遇到%的解码器应将其传输为ASCII/JIS8值1DHEX,如果遇到%%,则应将其作为单个%字符传输"——ISO/IEC 18004:2015§6.4.8.1

在数字编码(大多数GS1 AI值末尾最常见的编码)中甚至没有表示FNC1的方法,因此有必要切换编码以终止AI值。(QR码不是GS1 AI语法数据的有效载体!)

我怀疑ZPL实现者在这里把自己绑在了一起,因为必须插入比特流中以编码FNC1的实际比特序列完全取决于在必须插入分隔符时有效的编码模式,并且为了优化符号大小,有必要将消息分段成对它们编码的数据有效的多个编码序列。(最佳序列取决于要编码的数据,但要编码的信息取决于当前序列。)

相关内容

  • 没有找到相关文章

最新更新