打印机控制 佳博 Gprinter GP-9134T

控制程序

from PyQt5.QtPrintSupport import QPrinterInfo
import socket
import os
from jinja2 import Template

template = """
SIZE 50 mm,90 mm
GAP 2 mm,0 mm
REFERENCE 0,0
SPEED 2.5
DENSITY 3
SET PEEL OFF
SET CUTTER OFF
SET PARTIAL_CUTTER OFF
SET TEAR ON
DIRECTION 0
SHIFT 0
OFFSET 0 mm
CLS
TEXT 580,1030,"TSS24.BF2",180,1,1,"箱号:"
TEXT 580,1000,"TSS24.BF2",180,1,1,"{{ boxid }}"
TEXT 580,970,"TSS24.BF2",180,1,1,"数量:"
TEXT 580,940,"TSS24.BF2",180,1,1,"{{ cnt }}PCS"
TEXT 580,910,"TSS24.BF2",180,1,1,"版本:"
TEXT 580,880,"TSS24.BF2",180,1,1,"{{ version }}"
TEXT 580,850,"TSS24.BF2",180,1,1,"装箱时间:"
TEXT 580,820,"TSS24.BF2",180,1,1,"{{ date }}"
TEXT 580,700,"TSS24.BF2",180,1,1,"箱内模块MAC"
QRCODE 380,1030,L,3,M,180,1,1,"A{{boxid}},{{cnt}},{{version}},{{date}}{% for mac in macs %},{{ mac }}{% endfor %}"
{{mac_label}}
PRINT 1,1
"""


def get_label_info(boxid, cnt, version, date, macs):
    label = Template(template)
    height = 680
    temp = []
    mac_label = ''
    for index, mac in enumerate(macs, start=1):
        temp.append(mac)
        if index % 4 == 0:
            height = height - 25
            mac_label += ('''TEXT 570,%s,"1",180,1,1,"%s"\r\n''' % (height, '  '.join(temp)))
            temp = []
    return label.render(boxid=boxid, cnt=cnt, version=version, date=date, macs=macs, mac_label=mac_label)


def print_label_info(label):
    with open('print_label.txt', 'w') as f:
        f.write(label+'\r\n')
    host_name = socket.gethostname()
    printer_name = QPrinterInfo().defaultPrinterName()
    printer = r"\\%s\\%s" % (host_name, printer_name)
    cmd = r'copy %s "%s"' % ('print_label.txt', printer)
    print(cmd)
    flag = os.system(cmd)
    if flag:
        raise Exception('print label error')


boxid = 2201020001
cnt = 100
version = 'SPM_STA_RSDEI11'
date = 220102
macs = ['QWERTY778899', 'UIOPAS112233', 'DFGHJK445566', 'LZXCVB112233'] * 25
label = get_label_info(boxid, cnt, version, date, macs)
print_label_info(label)

输出效果

打印机控制 佳博 Gprinter GP-9134T_第1张图片

你可能感兴趣的:(python,工作,python)