天天看點

(8) PyQt 設計并實作【工廠掃碼裝箱系統】- Python實作 ZEBRA 斑馬條碼列印機 自動化列印标簽

目錄

​​一. 斑馬介紹​​

​​二. 列印原理講解​​

​​需要掌握以下知識點​​

​​1. 通過網絡列印​​

​​網絡列印 - 源碼​​

​​2. 通過序列槽列印​​

​​序列槽列印 - 源碼​​

​​序列槽列印 - 标簽模闆​​

​​三. 更多資料 ​​

一. 斑馬介紹

Zebra 産品 | 列印機、條碼掃描器等 

Zebra API Documentation | Developer Portal

斑馬列印機 常用于 産品辨別、資産管理、檔案追蹤、物料管理、進出貨物管理 及 庫存盤點等 條碼标簽列印。

二. 列印原理講解

需要掌握以下知識點

  • 掌握 ZPL(II)文法知識
  • 會制作ZPL标簽模闆,如文本,圖形,條形碼,二維碼等。
  • 會設定列印機基礎參數。
  • 會讀取列印機配置及狀态資訊。

1. 通過網絡列印

  • 列印機安裝了網卡,具備IP位址。

網絡列印 - 源碼

import imp
import socket
import time
from log import *
from config import *

g_config_printer = read_config("config/printer.json")

def sendto_printer(amount, id_number):
    mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    label = (b"""
^XA
^FO15,40^BY3
^BAN,300,Y,N,N
^FO75,30
^FD%s^SFddddddddddddD,1,F^FS
^FO111,341        
^GB50,50,50,W,0^FS
^FO444,341
^GB50,50,50,W,0^FS
^PQ%s
^XZ
    """ % (bytes(id_number, encoding='utf-8'), bytes(amount, encoding='utf-8')))
    logger.info(label)
    try:
        # connecting to host
        mysocket.connect((g_config_printer["ip"], g_config_printer["port"]))
        mysocket.send(label)  # using bytes
        mysocket.close()  # closing connection
    except Exception as e:
        logger.error( e)


if __name__ == "__main__":
    sendto_printer(amount, str(time.time()))      

2. 通過序列槽列印

序列槽列印 - 源碼

import serial
#指定序列槽
serialPort="COM3"   
#指定波特率
baudRate=9600       
# 打開序列槽
ser=serial.Serial(serialPort, baudRate, timeout=3)  

CMD = open('.//SerialPrinter.txt')
data = CMD.readline()

#收發資料
while data:
    ser.write(data)
    print(data)
    data = CMD.readline()
    
ser.close()  
      

序列槽列印 - 标簽模闆

^XA
^SEE:GB18030.DAT^FS
^CWZ,E:KAITI.FNT
^JMA^LL200^PW680^MD10^RP2^PON^LRN^LH0,0

^FO20,100
^AZN,72,72
^FD測試标簽Qq123^FS

^XZ