使用Python Escpos打印票据末尾5cm空白如何消除以节省纸张
Python Escpos 适配 PRINTER TG2460HIII 消除末尾多余空白方案
末尾5cm多余空白是Escpos库默认参数和该型号硬件参数不匹配导致的,不需要设置最大打印尺寸,按以下步骤调整即可完全消除空白:
核心参数修正:替换默认切纸走纸长度
Escpos库默认切纸前走纸长度是48mm左右,刚好对应你看到的5cm空白,而TG2460HIII的切刀、弹票模块距离热敏打印头的物理间距仅为18mm,直接在切纸指令里指定匹配的走纸长度即可,参考代码:from escpos.printer import Usb, Serial # 按你实际的连接方式初始化,USB/RS232二选一即可 # USB连接示例,idVendor和idProduct可在系统设备管理器中查询 p = Usb(idVendor=0x20d1, idProduct=0x7009) # RS232串口连接示例,按你实际的串口号、波特率修改 # p = Serial(devfile='/dev/ttyUSB0', baudrate=9600, bytesize=8, parity='N', stopbits=1) # 常规打印参数配置 p.set(align='left', font='a', width=1, height=1) # 写入你的所有票据内容:文本、二维码、条码、图片等 p.text("=== 消费凭证 ===\n") p.text("消费金额:100.00元\n") p.qr("order_123456", size=6) # 关键:切纸+弹票时指定走纸长度为18mm,不要用默认值 p.cut(mode='FULL', feed=18) # 触发弹票动作不需要额外走纸 p._raw(b'\x1b\x70\x00\x20\x20')切纸指令的
feed参数是核心调整项,默认值适配的是老式爱普生票据机的48mm走纸量,和你当前使用的TG2460HIII硬件不匹配才会产生固定长度的末尾空白。额外配置:关闭打印机固定页长模式
如果修改切纸参数后仍有多余空白,是打印机默认开启了固定页长检测,会强制走纸到预设页长才停止,发送原生ESC指令切换为连续纸模式即可:# 关闭固定页长配置,切换为连续热敏纸模式 p._raw(b'\x1d\x6c\x00') # 禁用自动走纸到下一页起始位逻辑 p._raw(b'\x1b\x43\x00')避坑说明
- 不要在代码里设置
page_height参数,连续纸模式下设置固定页高会强制走纸到对应高度,反而产生空白 - 打印内容过程中不要无意义调用
p.ln()多次走纸,所有内容打印完成后仅在切纸前走18mm即可 - 不要开启Escpos库的
auto_feed自动走纸开关,该开关默认会在打印结束后追加30mm以上的走纸量
- 不要在代码里设置
内容的提问来源于stack exchange,提问作者macop
相关产品推荐
相关产品推荐

