使用python库操作支持python>=3的esc/pos打印机

escposprinter的Python项目详细描述


用于操作esc/pos打印机的python库,现在用于python>;3

一依赖关系

要开始访问打印机,必须确保 您以前安装过以下Python模块:

  • pyusb (python-usb)
  • Pillow

2说明

python esc/pos是一个允许用户访问所有 由epson定义的esc/pos命令处理的打印机, 从python应用程序。

标准用法是将原始文本发送到打印机,但在 帮助用户通过以下方式增强使用这些打印机的体验 方便了不同标准的条码打印, 以及操纵图像以便将其打印为品牌 商标或任何其他使用图像

文本可以对齐/对齐,字体可以按大小更改, 类型和重量

此外,该模块还处理一些硬件功能,如 纸张、承运商退回、打印机重置和其他与 车架定位。

三。定义打印机

在开始创建python esc/pos打印机实例之前,必须 有关打印机参数,请参阅系统中的。这已经结束了 “lsusb”命令。

首先运行命令查找“vendor id”和“product id”, 然后写下这些值,这些值就显示在 设备的名称,格式如下:

xxxx:xxxx

示例:

Bus 002 Device 001: ID 1a2b:1a2b Device name

写下有问题的值,然后发出以下命令 命令,以便您可以获得“interface”编号和“end point”

lsusb -vvv -d xxxx:xxxx | grep iInterface lsusb -vvv -d xxxx:xxxx | grep bEndpointAddress | grep OUT

第一个命令将产生必须 使用方便,第二个生成“输出端点” 地址。

默认情况下,“接口”编号为“0”,而“输出端点” 地址是“0x82”,如果有其他值,则可以定义 以你的实例

四。定义实例

下面的示例演示如何初始化Epson TM-TI88IV

note:始终使用epson.cut()完成序列,否则将以打印奇怪的字符结束。 ……代码::python

from escposprinter import *

Epson = printer.Usb(0x04b8,0x0202) Epson.text(‘Hello World’) Epson.cut()

或与语句一起使用:

importdatetimefromescposprinterimport*fromescposprinter.escposimportEscposIO,EscposprinterAddress='192.168.0.196'printerPort=9100defcheckPrinterAlive():if(printer.Network.isAlive(printerAddress,printerPort)):returnTrueelse:raiseException("Host is unreachable, socket communication was not opened")if(checkPrinterAlive()):string=str("String: "+str(datetime.datetime.now().microsecond))foriterationinrange(30):withEscposIO(printer.Network(printerAddress,printerPort))asp:p.set(font='a',codepage='cp1251',size='normal',align='center',bold=True)p.writelines('LOGO')p.printer.nvRamImage()#p.printer.image('IMAGE PATH')p.writelines('')p.writelines('')p.writelines('')p.writelines('')# After exit of with, printer will cut the paper

这个方法在两个平台上都实现了:linux和windows

5个。API

  • escpos()-主类
  • escpos.image(path_img)-打开图像文件
  • escpos.nvrimage()-打印以前从nvram下载的(由第三方特定工具下载的)图像(它允许选择要打印的图像并设置打印图像宽度选项),默认情况下,它使用原始尺寸打印内存中的第一个图像
  • escpos.qr(文本,*args,**kwargs)-打印所提供字符串的二维码
  • Escpos.条形码(代码、bc、宽度、高度、位置、字体)-打印条形码
  • Escpos.text(文本)-打印任何文本
  • escpos.set(codepage=none,**kwargs)-kwargs应该是:
    • 粗体:设置粗体字体
    • 下划线:下划线文本
    • 大小:文本大小
    • 字体:字体类型
    • 对齐:文本位置
    • 倒置:黑底白字
    • 颜色:文本颜色
  • escpos.cut()-剪纸
  • escpos.cashdraw(pin)-向打印机pin发送打开的cashdraw信号。
  • escpos.control()和escpos.hw()-应该在您要执行其他操作时使用它。
  • escposio(printer,autocut=true,autoclose=true)-用于with“with”语句的类。当AutoCuut=假打印机后不切纸后退出“带”。
  • escposio.set(**kwargs)-设置打印流中的参数
    • 粗体:设置粗体字体
    • 下划线:下划线文本
    • 大小:文本大小
    • 字体:字体类型
    • 对齐:文本位置
    • 倒置:黑底白字
    • 颜色:T外部颜色
  • writelines(文本,**params)-接受类似“set”的参数,并将它们应用于此行。应该使用set()来设置公共参数。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jstl中循环内部的java方法   java如何以编程方式查找iOS应用程序的堆内存?   java JPA列注释   http Java在Web浏览器中显示HttpResponse的内容   ssl Java如何接受我的自签名证书而不必将其添加到Java信任库   java解析bufferedReader数据,在某些字符处停止   java将具有多个属性的对象映射到另一个对象,然后收集到列表   java是否可以将抽象方法的返回类型设置为与类相同?   java Android导航抽屉,带有菜单图标而非后退按钮   如何在JavaSpringMVC中防止会话重放攻击?   是VB。NET SmtpClient API受限于Java SendMail?   跨多线程/节点的java会话管理   来自Eclipse的java maven项目   使用已解析Java DOM XML中的元素添加新元素