我正在使用 zpl 语言生成 gs128 条形码。这是我的 zpl 代码。
^XA ^BY2,2.5,145^FO100,343^BC,,Y,N,N,D^FD(01)200588612>8(21)0000410549>8(10)ABC123^FS ^XZ
这是通过上面的 zpl 代码生成的条形码。
我假设您的意思是 GS1-128 条形码。如果您想使用 GS1 标准对数据进行编码,那么您不能只以原始格式传递数据。您需要根据标准对它们进行编码。
对于 GS1-128 代码,您需要使用特殊的起始字符 FNC1。它用于初始化 GS1 字符串并指示可变长度字符串的结束。这是一个非常有趣(和广泛)的话题。以下是一些有用的链接:
Zebra 关于编码 GS1-128 和 GS1-DataMatrix 代码的文章: https ://www.zebra.com/us/en/support-downloads/knowledge-articles/creating-gs1-barcodes-with-zebra-printers-for-data -matrix-and-code-128-using-zpl.html
斑马 ZPL 手册,128 码 https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf#G20.1037065
GS1 通用规范(应用标识符中 FNC1 的要求) https://www.gs1.org/docs/barcodes/GS1_General_Specifications.pdf#page=148&zoom=100,66,138 实际上,如果您打算使用 GS1,则整个文档很有用标准。
Barcodefaq 关于编码 GS1-128 条码的文章(类似于 Zebra 的文章,我更喜欢 Zebra 的文章,因为它更清晰) https://www.barcodefaq.com/1d/gs1-128/
所以,回到你的代码。
您将此参数用于 128 代码:
^BC,,Y,N,N,D
我会省略最后一个参数 (D),因为它限制您输入 18 个字符,即您必须输入 18 个字符。而且我不确定它如何与代码中的多个应用程序标识符一起工作。我建议让它使用默认值。
您的代码的另一个问题是,您使用的是 GTIN。根据规范,GTIN 必须以其 14 位版本通过。(如在 GS1 通用规范中)。这很容易通过在前面加上零来完成。
因此,在这些编辑之后,您的代码如下所示:
^XA
^BY2,2.5,145^FO100,33^BCN,,Y,N,N
^FD>;>80100000200588612210000410549>810>6ABC123^FS
^XZ
在哪里:
;>80100000200588612210000410549>810>6ABC123
可以分解为:
>; // Start code C
>8 // FNC1
01 // AI (Application identificator) for GTIN
00000200588612 // GTIN-14
21 // AI for Serial Number
0000410549 // Serial Number
>8 // FNC1 because Serial Number have variable length
10 // AI for Batch
>6 // switch to B-code for alpha-numerics
ABC123 // Batch
我希望这可以帮助你。我真的建议你看看上面的那些文章。
另一个有用的工具: http ://labelary.com/viewer.html 在那里您可以看到您的代码如何实时转换为标签。(有一些限制......一些代码类型尚未实现。)
*编辑另一个有用的应用程序是 barValid - 可以读取 GS1 条形码并验证它们是否正确编码的安卓智能手机应用程序。它不是官方应用程序,更像是粉丝应用程序或自定义研究应用程序,但它可以为您提供快速的结果,并且在我使用它的很长一段时间内它都没有让我失望。