我在生成要保存在打印机上以便经常调用的条形码模板时遇到问题。
这是一个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
预期结果是显示类似于下面的条形码,但带有附加标识符(附加一对括号和数字)。
使用此查看器http://labelary.com/viewer.html我可以看到我的代码不会执行我想要的操作。 它会抛出一些错误,如下所示:
*^FN:值“2 >8(10)”不是有效数字;后缀“>8(10)”被忽略
^FN:值“3 >8(90)”不是有效数字;后缀“>8(90)”被忽略*
条形码查看器如下所示:
如果我用一些虚拟数据替换 ^FN,我就会得到我所需要的:
^FD(91)81773866>8(10)2130789610>8(90)C2^FS
检查错误消息和代码,我可以明显看到 ^FN1 未正确定界,正在考虑 >8(90),因此忽略它们。因此只在开头显示“(91)”部分。
我的问题是,如何生成具有三个标识符的条形码模板,该模板对稍后调用指定字段编号的事实感到满意?
我还没有 Zebra 打印机来尝试 zpl 代码。
您不能在
^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 可以实现的最好的数据封装。
^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
它打印的是没有数据的白色标签