首页 > 其他分享 >Zebra 打印机模板实现模板标签打印

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

时间:2024-06-05 10:35:31浏览次数:19  
标签:25 打印机 FS 打印 Zebra A1N 模板

Browser Print User Guide (zebra.cn)

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

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

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

此次测试的打印机型号为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 

 

标签:25,打印机,FS,打印,Zebra,A1N,模板
From: https://www.cnblogs.com/xm123/p/18179220

相关文章

  • 考研英语·作文模板
    ThevisualrepresentationillustratedishighlyrelatableamongagreatnumberofindividualsanddepictstheimagesthUponcriticallyanalysingthisphotomostindividualswouldagreethatthetopicisacontentiousissuewhichneedsadditionalconsider......
  • 个人博客 HTML个人介绍网页 学生个人网页设计作品 学生个人网页模板 简单个人主页成品
    ......
  • 进程间通信函数接口及应用模板小结
    进程间通信方式1.无名管道/有名管道2.信号3.共享队列(systemV-IPC)4.共享内存(systemV-IPC)5.信号量(systemV-IPC)6.套接字无名管道特征1.文件没有名字,无法使用open2.只能用于亲缘进程间3.半双工工作方式:读写端分开4.写入操作不具有原子性,会被打断,因此只能用于一对一的简......
  • 笔记7:训练过程封装(代码模板)
    转自:https://www.cnblogs.com/miraclepbc/p/14335456.html相关包importtorchimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltfromtorchimportnnimporttorch.nn.functionalasFfromtorch.utils.dataimportTensorDatasetfromtorch.utils.......
  • VS Code自定义代码模板
    VSCode自定义代码模板VSCode作为一款轻量级的编辑器,使用体验极佳,具有很多有用的小功能,也有着非常丰富的插件,日常写代码的时候自动补全和各种模板能够有效的提高编码的效率,这里介绍两种我常使用的自定义代码块或者模板的设置方法。集成自定义代码段VSCode自带了用户定......
  • 倚天屠龙记(函数模板)
    题目描述江湖中有一个传言,只要倚天剑和屠龙刀中暗藏的秘密拼到一起,就能得到天下无敌的内功秘笈。设计一个函数模板,完成拼凑的功能(将倚天剑的秘密连接到屠龙刀的后面),并将秘笈输出.其中每个秘密由n个元素组成,类型为T。输入第一行输入t表示有t个测试实例第二行先输入一个大写......
  • Netty服务端代码模板
    /***Echoesbackanyreceiveddatafromaclient.*/publicfinalclassEchoServer{staticfinalintPORT=Integer.parseInt(System.getProperty("port","8007"));publicstaticvoidmain(String[]args)throwsException{......
  • 常用模板库
    数学、数论namespacemath{ intmu[MAXN],prime[MAXN]; bitset<MAXN>is_prime; intMOD; intfrac[MAXN]; intqpow(inta,intb){ if(b==0)return1; if(b==1)returna; intk=qpow(a,b>>1); k*=k;k%=MOD; if(b&1)k*=a;k%=MOD; returnk;......
  • 一个简单的HTML网页 故宫学生网页设计作品 dreamweaver作业静态HTML网页设计模板 旅游
    家乡旅游景点网页作业制作网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有运用,CSS的代码量也很足、很细致,使用hover来完成过渡效果、鼠......
  • 学生家乡网页设计作品静态HTML网页模板源码 广西旅游景点网页设计 大学生家乡主题网站
    家乡旅游景点网页作业制作网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有运用,CSS的代码量也很足、很细致,使用hover来完成过渡效果、鼠......