使用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第三方库


热门话题
如何使用外部java程序在minecraft中移动minecraft角色的相机   java输出文本文件中的变量   java LazyLoadingException在我尝试从多通关系获取对象时出现   java json rest API的错误:ClassCastException:org。json。无法将JSONObject强制转换为组织。json。杰索纳雷   java BigInteger。C中的intValue()等价物#   java大写所有字符,但不包括带引号字符串中的字符   java获取特殊字符   javascript为什么Selenium中的所有getX()调用都需要这么长时间?   rabbitmq rabbitmq java客户端并行消费   如何使用selenium Java在popover窗口中提取文本   对象在java中构造一类对象   java Room数据库未实现   json JSONObject可以使用java保存大的格式化双值吗?   有时限的旅行推销员   java HttpsURLConnection openConnection查询   java无法使用Spring@Entity注释创建MySQL表   lambda Java 8仅映射到值类型集合   java提供OSGi服务而不实现接口   java单个对象重写对象数组,不确定原因