我试图正确地证明我正在使用.Net程序中的ZPL进行打印的条形码.这是我目前的代码:
^FO10,50^FB500,1,0,R,0^AO,40,40^BY3^BCN,100,Y,N,N^FD1234567^FS^XZ
Run Code Online (Sandbox Code Playgroud)
使用条形码时,字段块似乎被忽略,但对于文本,它可以正确地证明它是正确的.有任何想法吗?
较新的斑马固件支持在第三个参数^FO和^FT.如果要右对齐某些内容,请将右边指定为x参数,并将1作为第三个参数.
^XA
^BY3
^FO85,30^GB500,450,3^FS
^FO100,50^BCN,30,Y,N,N
^FD>;12345678^FS
^FO100,120N^BCN,30,Y,N,N
^FD>;123456^FS
^FO100,190^BCN,30,Y,N,N
^FD>;1234^FS
^FO570,260,1^BCN,30,Y,N,N
^FD>;12345678^FS
^FO570,330,1^BCN,30,Y,N,N
^FD>;123456^FS
^FO570,400,1^BY3^BCN,30,Y,N,N
^FD>;1234^FS
^XZ
Run Code Online (Sandbox Code Playgroud)

我们公司也有同样的问题。条形码不响应字段块。根据您的示例,由于您直接使用 ZPL 命令来生成条形码(而不是条形码图像),因此您可以执行与我们类似的操作。根据我们写入的数据,我们大致知道条形码的宽度。因此,我们创建了一种方法来根据我们已知的标签宽度确定条形码的 x 轴位置。
例如:我们使用 s4M 打印机,估计整个标签宽度约为 780 点宽。因此,为了左/中/右对齐,我们采用粗略的条形码(估计)宽度并进行相应计算(左侧设置为 xaxis = 0,中心设置为 xaxis = ((780 -barcodeWidth) / 2),右侧设置为 xaxis = ((780 -barcodeWidth) / 2)合理的做法是 xaxis = (780 - BarcodeWidth)。这不是一个完美的解决方案,但至少可以满足我们的需求。通过查看更多条形码设置信息(例如数据方块大小),您的算法当然可以更加精确,列、行等...取决于您的需要。
如果您想提出一种生成条形码图像的解决方案(这也是我们现在也正在尝试提出的),那么您应该能够使用内置的 .net 图形轻松获取条形码图像的宽度功能。