微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Escpos Thermal ZJ-58 Python Code128 条码打印无任何显示

如何解决Escpos Thermal ZJ-58 Python Code128 条码打印无任何显示

from escpos.printer import Usb

p = Usb(0x0416,0x5011,0x81,0x03)
p.text("=================\n")
#p.image("./barcode/barcode.png")
#p.barcode('1324354657687','EAN13',64,2,'','./fonts/code128.ttf')
### barcode(code,bc,width,height,pos,font)
p.barcode("{B012ABCDabcd","CODE128",function_type="B")
# Print QR Code
#p.qr("You can readme from your smartphone")
#p.cut()
#print(p.control('LF',16))
#print(p.device)

我尝试打印 code128 和 ean 条码。我只有这样的文字;

@1324354657687

@I{B012ABCDabcd

。我尝试添加字体文件(这没有用)、更改代码类型和其他一些无用的东西。我研究了互联网上的文件和手册。我可以打印文本和图像。

我用这个https://github.com/escpos/python-escpos

我使用的打印机:紫江热敏ZJ-5890

知道为什么我只得到字母而不是条形码吗?

解决方法

您提供的库在查看源代码时不支持 Code128 条码。
python-escpos/escpos/escpos.py#L150

def barcode(self,code,bc,width,height,pos,font):
    """ Print Barcode """
    ... Omitted on the way ...
    # Type 
    if bc.upper() == "UPC-A":
        self._raw(BARCODE_UPC_A)
    elif bc.upper() == "UPC-E":
        self._raw(BARCODE_UPC_E)
    elif bc.upper() == "EAN13":
        self._raw(BARCODE_EAN13)
    elif bc.upper() == "EAN8":
        self._raw(BARCODE_EAN8)
    elif bc.upper() == "CODE39":
        self._raw(BARCODE_CODE39)
    elif bc.upper() == "ITF":
        self._raw(BARCODE_ITF)
    elif bc.upper() == "NW7":
        self._raw(BARCODE_NW7)
    else:
        raise BarcodeTypeError()
    # Print Code

似乎有一个同名的库,为什么不尝试使用它呢?
python-escpos 2.2.0
python-escpos/python-escpos
python-escpos - Python library to manipulate ESC/POS Printers
Printing Barcodes

Escpos.barcode(code,height=64,width=3,pos='BELOW',font='A',align_ct=True,function_type=None,check=True)

参数

  • 公元前 –
    类型 B 的可能值:
    • CODE128
    • GS1-128

CODE128
Code128 条码需要一定的格式。现在,用户必须确保有效载荷是正确的。对于字母数字 CODE128,您必须以 {B.

开头您的有效负载
from escpos.printer import Dummy,Serial
p = Serial()
# print CODE128 012ABCDabcd
p.barcode("{B012ABCDabcd","CODE128",function_type="B")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。