使用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()来设置公共参数。
6.链接
原创作者: *马丁内斯manpaz@bashlinux.com>; *dmitry orlov<;me@mosquito.su>;
本回购开发商: *法德拉·西蒙尼fardella93@gmail.com>