跳转到内容

ESC 指令

ESC 指令是一种二进制形式的打印机控制指令,广泛用于热敏小票打印机和标签打印机。

ESC 指令使用十六进制字节序列来构建完整的打印指令。每条指令通常以特定的控制码开头。

[控制码] [功能码] [参数...]
控制码十六进制名称用途
ESC0x1BEscape标准控制指令
GS0x1DGroup Separator图形/高级功能
DLE0x10Data Link Escape实时状态指令
FS0x1CFile Separator汉字模式指令
LF0x0ALine Feed换行

唤醒休眠中的打印机。

十六进制: 00 00 00 00 00 00 00 00

发送 8 个空字节唤醒打印机。

启用打印机,准备接收打印数据。

十六进制: 10 FF 20 00

初始化打印机,清除打印缓冲区,恢复默认设置。

ESC @
十六进制: 1B 40

结束当前打印任务。

十六进制: 1B 40 10 FF FE 01

打印光栅位图图片。

GS v 0 m xL xH yL yH [数据]
十六进制: 1D 76 30 m xL xH yL yH [数据]
参数说明
m打印模式
xL xH水平字节数(低位 高位)
yL yH垂直点数(低位 高位)
数据图片位图数据
m 值说明
0正常打印
1倍宽打印
2倍高打印
3倍宽倍高打印

支持压缩的打印机可使用压缩模式发送图片数据。

十六进制: 1F 00 [宽度高位] [宽度低位] [高度高位] [高度低位] [数据长度4字节] [压缩数据]

SDK 支持设置二值化阈值,默认值为 190。

阈值范围效果
0-127图片偏黑
128-190正常(推荐)
191-255图片偏白

定位到下一标签位置(标签纸模式使用)。

十六进制: 10 FF 04

自动学习/检测标签纸的间隙。

十六进制: 10 FF 30 F2 31

向前走纸指定点数。

ESC J n
十六进制: 1B 4A n
参数说明
n走纸点数(0-255)
十六进制: 10 FF F0 [点数低位] [点数高位]

向后回纸指定点数。

十六进制: 10 FF F1 [点数低位] [点数高位]

设置横向打印起始位置。

十六进制: 10 FF 12 [位置值]

设置打印机纸张类型。

十六进制: 10 FF 10 03 [类型]
类型值纸张类型
0折叠黑标纸
1连续卷筒纸
2不干胶缝隙纸
3打孔纸
4纹身纸
5纹身纸(防皱模式)
6透明黑标纸

Q1/Q2/Q3/D11/D30/B21/B22 等机型使用。

十六进制: 10 FF 40 F4 [类型]
类型值纸张类型
0缝隙纸
1黑标纸
2连续纸
十六进制: 10 FF 40 F3

返回值:

  • 0x01 - 黑标纸
  • 0x02 - 连续纸
  • 其他 - 缝隙纸

设置打印机打印浓度。

十六进制: 10 FF 10 00 [浓度值]
浓度值说明
0低浓度
1中浓度
2高浓度

设置自动关机时间。

十六进制: 10 FF 10 0A [时间低位] [时间高位]
参数说明
时间关机时间(分钟),0 表示不自动关机
十六进制: 10 FF 10 0B

设置蓝牙通信类型(支持压缩的机器需要调用)。

十六进制: 10 FF 40 F1

设置打印机当前时间(部分机型支持)。

十六进制: 10 FF 40 A0 [年] [月] [日] [时] [分] [秒]

立即执行切纸动作。

十六进制: 1D 56 00

走纸固定距离后执行切纸(由固件决定走纸距离)。

十六进制: 1D 56 42 00
指令十六进制说明
GS V 01D 56 00全切
GS V 11D 56 01半切
GS V 66 n1D 56 42 n走纸 n 行后切纸

绘制直线。

十六进制: 10 FF 21 [X低] [X高] [Y低] [Y高] [宽度低] [宽度高] [高度低] [高度高]
参数说明
X起始 X 坐标
Y起始 Y 坐标
宽度线条宽度
高度线条高度

查询打印机的完整信息。

十六进制: 10 FF 00 FF

查询当前打印机状态。

十六进制: 10 FF F9

查询打印机电池电量。

十六进制: 10 FF 50 00
十六进制: 10 FF 50 11
十六进制: 10 FF 30 00
十六进制: 10 FF 20 00
十六进制: 10 FF 30 F0
十六进制: 10 FF 20 F0
十六进制: 10 FF 50 14
十六进制: 10 FF 30 02

部分打印机支持 NFC 标签功能。

十六进制: 10 FF A0 00
十六进制: 10 FF A0 01
十六进制: 10 FF A0 02
十六进制: 10 FF A0 03

部分打印机支持灰阶打印。

十六进制: 10 FF E1 03

灰阶模式下打印图片,支持更丰富的灰度层次。


打印机会在特定情况下主动向 APP 发送状态信息。

当打印机有异常状态时,会主动发送两个字节的状态。

数据头状态类型解析
0xFF0x00打印机正常
0xFF0x01过热
0xFF0x02开盖
0xFF0x04缺纸
0xFF0x08低压

设备侦测到实际纸张与设置不匹配时,会主动上报。

数据头状态类型解析
0xFE0x01折叠黑标纸
0xFE0x02连续卷筒纸
0xFE0x03不干胶缝隙纸

用户中止打印任务时的上报。

数据头状态类型解析
0xFD0x01开始清除当前页面打印任务
0xFD0x02清除当前打印任务结束

推荐的打印流程顺序:

  1. 唤醒打印机 - 发送唤醒指令
  2. 使能打印机 - 启用打印机
  3. 打印图片 - 发送图片数据
  4. 打印定位 - 定位到下一标签(连续纸不需要)
  5. 结束打印任务 - 完成打印
00 00 00 00 00 00 00 00 # 唤醒打印机
10 FF 20 00 # 使能打印机
10 FF 10 00 01 # 设置中浓度
10 FF 10 03 02 # 设置不干胶缝隙纸
1D 76 30 00 ... # 打印图片数据
10 FF 04 # 打印定位
1B 40 10 FF FE 01 # 结束打印任务

各语言 SDK 封装了 ESC 指令的构建过程,具体使用方法请参考:

ESC 完整指令文档 (PDF)