• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
夕颜
博客园    首页    新随笔    联系   管理    订阅  订阅
Zebra 打印机模板实现模板标签打印

Browser Print User Guide (zebra.cn)  (前端调用打印,引用斑马打印js)

现状:一台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 

 

posted on 2024-06-05 10:23  夕颜~~  阅读(736)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3