Zebra 打印機模板實現模板標簽打印


好久沒有這么專注的研究過一個東西了,當研究出來后久違的滿足感!

最近項目中需要用到標簽打印,雖然與打印機的接口由其他設備外包商承接,但打印機型號的采購還是需要我們自己選擇,且承包商也不願做復雜的通訊接口,所以才有了后來的研究, 項目為了保險起見,我們還是需要驗證一下技術實現方式和實現難度。

當然由其他家各種品牌標簽打印機,其中不乏特別簡單通訊方式的,但最終選擇了斑馬的型號,原因很簡單:便宜!

此次測試的打印機型號為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 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM