带有字段编号变量和三个标识符的 ZPL GS1-128 条形码问题

问题描述 投票:0回答:2

我在生成要保存在打印机上以便经常调用的条形码模板时遇到问题。

这是一个GS1-128条形码,具有三个标识符:91(公司内部信息,10(批次号)和90(贸易伙伴之间共同商定的信息)。

我正在使用 ^DF 和 ^XF 创建模板来保存和调用格式。

我要保存的模板的代码是:

^XA
^DFE:TEMPLATE1.ZPL^FS
^FX Below is the top barcode build
^FX Position
^FO125,620
^Barcode formatting
^BY4
^Barcode generating code
^BCN,250,Y,N,N,D

^FD(91)^FN2 >8(10)^FN3 >8(90)^FN6 ^FS
^XZ

然后,调用模板并使用以下代码指定字段编号(^FN2、^FN3 和 ^FN6):

^XA
^XFR:TEMPLATE1.ZPL
^FN2^FD81773866^FS
^FN3^FD2130789610^FS
^FN6^FDC2^FS
^XZ

预期结果是显示类似于下面的条形码,但带有附加标识符(附加一对括号和数字)。

Barcode intended result

使用此查看器http://labelary.com/viewer.html我可以看到我的代码不会执行我想要的操作。 它会抛出一些错误,如下所示:

*^FN:值“2 >8(10)”不是有效数字;后缀“>8(10)”被忽略

^FN:值“3 >8(90)”不是有效数字;后缀“>8(90)”被忽略*

条形码查看器如下所示:

Barcode actual result

如果我用一些虚拟数据替换 ^FN,我就会得到我所需要的:

^FD(91)81773866>8(10)2130789610>8(90)C2^FS

enter image description here

检查错误消息和代码,我可以明显看到 ^FN1 未正确定界,正在考虑 >8(90),因此忽略它们。因此只在开头显示“(91)”部分。

我的问题是,如何生成具有三个标识符的条形码模板,该模板对稍后调用指定字段编号的事实感到满意?

我还没有 Zebra 打印机来尝试 zpl 代码。

templates label zebra-printers zpl gs1-128
2个回答
0
投票

您不能在

^FN
内使用
^FD...^FS
。 ZPL 手册对此的描述如下:

在存储格式中,在通常使用 ^FD(字段数据)命令的地方使用 ^FN 命令。

对于您的示例,您需要使用包含整个条形码文本值的单个

^FN

在保存的格式中,您将拥有

^BCN,250,Y,N,N,D^FN2^FS

打印标签时:

^XA
^XFR:TEMPLATE1.ZPL
^FN2^FD(91)81773866>8(10)2130789610>8(90)C2^FS
^XZ

可能不是您正在寻找的数据封装,但这是 ZPL 可以实现的最好的数据封装。


0
投票
^XA
^DFE:TEMPLATE1.ZPL^FS
^FO125,620
^BY4
^BCN,250,Y,N,N,D^FN2^FS
^FN2^FS
^XZ

^XA
^XFR:E:TEMPLATE1.ZPL
^FN2^FD(91)81773866>8(10)2130789610>8(90)C2^FS
^XZ

它打印的是没有数据的白色标签

© www.soinside.com 2019 - 2024. All rights reserved.