让Python代码直接驱动小票机/热敏打印机还在为如何通过Python控制小票打印机发愁?无论是超市收银机、外卖订单打印机还是物流面单设备,只要支持ESC/POS指令,python-escpos库都能让你用几行代码轻松实现文本打印、条码生成甚至自动切纸功能!本文将带你全面解锁这个宝藏库。
为什么选择python-escpos?ESC/POS是爱普生制定的打印机通用指令标准,覆盖90%以上的热敏/针式打印机。python-escpos通过封装这些底层指令,让开发者无需研究复杂的硬件协议即可实现:
核心功能全解析
文本打印黑科技
p.set(font='a', align='center') # 选择字体+居中p.text("超大标题\n", width=2, height=2) # 双倍字号p.text("正常内容\n", underline=1) # 添加下划线
支持即时切换字体样式,甚至能打印中文等多语言文本(需确保打印机支持对应字库)。
图形化输出直接打印PIL处理的图片:
from PIL import Imageimg = Image.open("logo.png")p.image(img, impl="bitImageColumn") # 自动转换灰度
智能条码生成内置支持EAN13、CODE128等20+种条码标准:
p.barcode('123456789', 'CODE39', width=3, height=100, text_position='BELOW') # 条码下方显示数字
硬件控制大师
p.cut() # 自动切纸p.cashdraw(2) # 触发第二个钱箱p.control("LF") # 走纸一行
三步极速上手指南以USB接口打印机为例:
# 安装库pip install python-escpos# 连接设备(Windows查看设备管理器中的VID/PID)from escpos.printer import Usbprinter = Usb(idVendor=0x0483, idProduct=0x5743, profile='POS-5890')# 打印内容printer.text("订单号:20230815001\n")printer.qr("https://order.example.com/20230815001")printer.cut()
六大应用场景
零售收银系统:自动打印带商品二维码的电子发票
餐饮后厨管理:网络打印机实时接收订单
物流面单打印:批量生成带条码的快递单
自助服务终端:打印凭条后自动切纸
物联网设备:通过串口控制嵌入式打印机
数据可视化:将统计图表直接输出为纸质版
总结python-escpos以其简洁的API设计、强大的硬件兼容性,成为Python开发者操作ESC/POS打印机的首选方案。无论是简单的收据打印,还是复杂的图文混排需求,都能通过这个库快速实现。项目支持Windows/Linux/macOS全平台运行,文档中更包含数十种打印机型号的配置示例。
项目地址:https://github.com/python-escpos/python-escpos