让Python代码直接驱动小票机/热敏打印机
还在为如何通过Python控制小票打印机发愁?无论是超市收银机、外卖订单打印机还是物流面单设备,只要支持ESC/POS指令,python-escpos库都能让你用几行代码轻松实现文本打印、条码生成甚至自动切纸功能!本文将带你全面解锁这个宝藏库。
为什么选择python-escpos?
ESC/POS是爱普生制定的打印机通用指令标准,覆盖90%以上的热敏/针式打印机。python-escpos通过封装这些底层指令,让开发者无需研究复杂的硬件协议即可实现:
-
多接口支持:USB/串口/网络打印机一键连接
-
富文本打印:字号/字体/对齐方式自由组合
-
高级功能:自动生成二维码/条形码、打印图片、控制钱箱
-
硬件交互:执行切纸、打印机复位等物理操作
核心功能全解析
-
文本打印黑科技
p.set(font='a', align='center') # 选择字体+居中
p.text("超大标题n", width=2, height=2) # 双倍字号
p.text("正常内容n", underline=1) # 添加下划线
支持即时切换字体样式,甚至能打印中文等多语言文本(需确保打印机支持对应字库)。
-
图形化输出
直接打印PIL处理的图片:
from PIL import Image
img = 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 Usb
printer = Usb(idVendor=0x0483,
idProduct=0x5743,
profile='POS-5890')
# 打印内容
printer.text("订单号:20230815001n")
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
原文始发于微信公众号(小白这样学Python):python-escpos:Python打印机神器来袭!用Python轻松玩转ESC/POS打印机
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/314464.html