Zebra 打印机模板实现模板标签打印

您所在的位置:网站首页 40*30打印模版 Zebra 打印机模板实现模板标签打印

Zebra 打印机模板实现模板标签打印

2024-02-25 02:16| 来源: 网络整理| 查看: 265

好久没有这么专注的研究过一个东西了,当研究出来后久违的满足感!

最近项目中需要用到标签打印,虽然与打印机的接口由其他设备外包商承接,但打印机型号的采购还是需要我们自己选择,且承包商也不愿做复杂的通讯接口,所以才有了后来的研究, 项目为了保险起见,我们还是需要验证一下技术实现方式和实现难度。

当然由其他家各种品牌标签打印机,其中不乏特别简单通讯方式的,但最终选择了斑马的型号,原因很简单:便宜!

此次测试的打印机型号为GK888t(虽不是最终项目上要用的型号,但据说斑马的通讯方式都一样)。

现状:一台GK888t打印机(之前出现问题就是打印的不清晰,换了纸也不行,最终找到原因电源适配器小了,原来打印机很久没用,这次测试就随便找了个能用的适配器插上了,结果证明还是原装的靠谱啊)

    标签打印纸:若干;

    在这之前已实现两种打印方式:

        1. html模板直接打印。

        2. 另一就是程序中引用.nlbl模板,替换其中变量后发送至打印机实现带模板的打印。

    现在要实现: 将模板下载至打印机存储(可以断点保持),打印时直接向打印机发送模板中变量的值实现套用模板打印。

 

1. 首先肯定是找供应商要相关资料:

      ZPLII语言.rar

  看完资料后发现两种方式可以实现我的诉求:1- GRF或PNG格式的标签模板(虽然zebra designer导出的是.lbl或.nlbl格式,这个目前还没弄明白怎么转换称这种格式)。2-格式标签的方式实现(本文描述该实现方式)。

 

2. 准备实现

  首先看下文档中的描述:

 

  

  很清晰,但就是看不明白这一串串的指令是什么意思,先看图:

 

 

 

 接下来就现根据自己的一知半解解释一番:

开头:^XA ;结尾:^XZ ;这是固定格式。

^DFR:FORMAT^FS 中DF为download format 即:下载保存格式的意思,就是下载格式到打印机,下载到打印机的什么位置呢? 看下图:

 

 

这就明白了,然后冒号后面的FORMAT为这次下载的标签格式的名称(调用时要用),最后的^FS为指令域的结束符。

然后下一句:^LH30,30 什么意思呢? 继续看图:

 

 这就很清晰了,其中FN1、FN2为参数名(调用时会用到)。

好了,保存完模板,我们就该调用了!

^XFR:为调用模板,下载位置需要与保存位置相同,名称等一致。

然后需要编辑参数与参数值的对应关系,其中参数FN1、FN2赋值时需加FD。

现在为止,已经完成标签保存和调用了。但实际应用过程中发现。。。变量打印中文乱码。。。

 

3. 解决标签格式打印中文变量乱码的问题

首先看下当前打印机中都有哪些字体?

发送命令:^XA^WD*:*.FNT*^XZ  则会打印出该打印机上保存的所有可用字体如下图

 

发现,咦,有SIMSUN.FNT。据说这个可以打印中文。那就不用再下载字体了,且已经有标号1(如果没有,可通过命令^XA^CWM,E:SIMSUN.FNT^XZ 赋值,标号可自定义子母或数字(猜的)),如果需要下载字体可以参考:http://www.chongshang.com.cn/manual/ZPL_font.shtml 

那么开始打印吧,从网上查找资料时发现如下信息:顿时如获至宝:

^XA ^CI26 //ASCII Transparency和多字节亚洲编码 ^SEE:GB18030.DAT //码表 ^CW1,E:SIMSUN.FNT //字体(宋体) ^FO200,200^A1N,48,48^FD中文^FS //打印文字 ^FT448,288^BQ2,2,10^A1N,48,48^FD中文^FS //打印二维码 ^XZ

 

那么就有了,改造一下模板命令试试吧:

最终得到新模板命令如下

^XA ^DFE:FORMAT^FS                  // 下载保存模板 ^LH0,0                       //原点 ^FO12,121^GB643,0,1^FS             // 分割线 ^FO12,173^GB643,0,1^FS ^CI26                       //ASCII Transparency和多字节亚洲编码 ^SEE:GB18030.DAT                //码表 ^CW1,E:SIMSUN.FNT                //字体(宋体) ^FO300,45^A1N,25,25^CI26^FD打印人:^FS    //其中A1N 表示使用标号为1的字体,后面的25,25 代表字体大小 ^FO300,89^A1N,25,25^CI26^FD打印日期:^FS ^FO27,143^A1N,25,25^CI26^FD门店信息:^FS ^FO43,253^A1N,25,25^CI26^FD起始巷道:^FS ^FO43,199^A1N,25,25^CI26^FD订单编号:^FS ^FO18,40^A1N,33,25^FN1^FS ^FO39,102^A1N,35,35^FN2^FS ^FO420,45^A1N,33,33^FN3^FS ^FO149,148^A1N,30,30^FN4^FS ^FO356,148^A1N,30,30^FN5^FS ^BY2,3,120^FT37,429^BCN,,Y,N,,A ^FN6^FS ^FO210,254^A1N,28,28^FN7^FS ^FO210,200^A1N,28,28^FN8^FS ^FO420,200^A1N,28,28^FN9^FS ^FO420,93^A1N,28,25^FN10^FS ^PQ1,,,Y ^XZ

 

调用一下试试: 

^XA ^XFE:FORMAT^FS ^FN1^FD首打^FS ^FN2^FD箱拣标签^FS ^FN3^FD吕笑笑^FS ^FN4^FD20126^FS ^FN5^FD京东2号店^FS ^FN6^FD202010291437001^FS ^FN7^FDSRM03^FS ^FN8^FD20201029001^FS ^FN9^FD2/9-36/60^FS ^FN10^FD2020-10-29 16:12^FS ^XZ

成了:

 

 

 

最后附上几个常用命令:

删除标签模板 :^XA^IDE:FORMAT.ZPL^FS^XZ 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3