ESC 指令
ESC 指令是一种二进制形式的打印机控制指令,广泛用于热敏小票打印机和标签打印机。
ESC 指令使用十六进制字节序列来构建完整的打印指令。每条指令通常以特定的控制码开头。
[控制码] [功能码] [参数...]| 控制码 | 十六进制 | 名称 | 用途 |
|---|---|---|---|
| ESC | 0x1B | Escape | 标准控制指令 |
| GS | 0x1D | Group Separator | 图形/高级功能 |
| DLE | 0x10 | Data Link Escape | 实时状态指令 |
| FS | 0x1C | File Separator | 汉字模式指令 |
| LF | 0x0A | Line Feed | 换行 |
打印机控制指令
Section titled “打印机控制指令”唤醒休眠中的打印机。
十六进制: 00 00 00 00 00 00 00 00发送 8 个空字节唤醒打印机。
启用打印机,准备接收打印数据。
十六进制: 10 FF 20 00初始化打印机 (ESC @)
Section titled “初始化打印机 (ESC @)”初始化打印机,清除打印缓冲区,恢复默认设置。
ESC @十六进制: 1B 40结束打印任务
Section titled “结束打印任务”结束当前打印任务。
十六进制: 1B 40 10 FF FE 01图片打印指令
Section titled “图片打印指令”打印位图图片 (GS v 0)
Section titled “打印位图图片 (GS v 0)”打印光栅位图图片。
GS v 0 m xL xH yL yH [数据]十六进制: 1D 76 30 m xL xH yL yH [数据]| 参数 | 说明 |
|---|---|
| m | 打印模式 |
| xL xH | 水平字节数(低位 高位) |
| yL yH | 垂直点数(低位 高位) |
| 数据 | 图片位图数据 |
打印模式 (m)
Section titled “打印模式 (m)”| m 值 | 说明 |
|---|---|
| 0 | 正常打印 |
| 1 | 倍宽打印 |
| 2 | 倍高打印 |
| 3 | 倍宽倍高打印 |
压缩图片打印
Section titled “压缩图片打印”支持压缩的打印机可使用压缩模式发送图片数据。
十六进制: 1F 00 [宽度高位] [宽度低位] [高度高位] [高度低位] [数据长度4字节] [压缩数据]图片二值化阈值
Section titled “图片二值化阈值”SDK 支持设置二值化阈值,默认值为 190。
| 阈值范围 | 效果 |
|---|---|
| 0-127 | 图片偏黑 |
| 128-190 | 正常(推荐) |
| 191-255 | 图片偏白 |
定位到下一标签位置(标签纸模式使用)。
十六进制: 10 FF 04学习标签间隙
Section titled “学习标签间隙”自动学习/检测标签纸的间隙。
十六进制: 10 FF 30 F2 31走纸 (ESC J)
Section titled “走纸 (ESC J)”向前走纸指定点数。
ESC J n十六进制: 1B 4A n| 参数 | 说明 |
|---|---|
| n | 走纸点数(0-255) |
走纸指定点行
Section titled “走纸指定点行”十六进制: 10 FF F0 [点数低位] [点数高位]向后回纸指定点数。
十六进制: 10 FF F1 [点数低位] [点数高位]设置打印起始位置
Section titled “设置打印起始位置”设置横向打印起始位置。
十六进制: 10 FF 12 [位置值]纸张设置指令
Section titled “纸张设置指令”设置纸张类型 (A4 系列)
Section titled “设置纸张类型 (A4 系列)”设置打印机纸张类型。
十六进制: 10 FF 10 03 [类型]| 类型值 | 纸张类型 |
|---|---|
| 0 | 折叠黑标纸 |
| 1 | 连续卷筒纸 |
| 2 | 不干胶缝隙纸 |
| 3 | 打孔纸 |
| 4 | 纹身纸 |
| 5 | 纹身纸(防皱模式) |
| 6 | 透明黑标纸 |
设置纸张类型 (Q 系列)
Section titled “设置纸张类型 (Q 系列)”Q1/Q2/Q3/D11/D30/B21/B22 等机型使用。
十六进制: 10 FF 40 F4 [类型]| 类型值 | 纸张类型 |
|---|---|
| 0 | 缝隙纸 |
| 1 | 黑标纸 |
| 2 | 连续纸 |
查询当前纸张类型
Section titled “查询当前纸张类型”十六进制: 10 FF 40 F3返回值:
0x01- 黑标纸0x02- 连续纸- 其他 - 缝隙纸
打印设置指令
Section titled “打印设置指令”设置打印浓度
Section titled “设置打印浓度”设置打印机打印浓度。
十六进制: 10 FF 10 00 [浓度值]| 浓度值 | 说明 |
|---|---|
| 0 | 低浓度 |
| 1 | 中浓度 |
| 2 | 高浓度 |
设置关机时间
Section titled “设置关机时间”设置自动关机时间。
十六进制: 10 FF 10 0A [时间低位] [时间高位]| 参数 | 说明 |
|---|---|
| 时间 | 关机时间(分钟),0 表示不自动关机 |
查询关机时间
Section titled “查询关机时间”十六进制: 10 FF 10 0B设置蓝牙类型
Section titled “设置蓝牙类型”设置蓝牙通信类型(支持压缩的机器需要调用)。
十六进制: 10 FF 40 F1设置当前时间
Section titled “设置当前时间”设置打印机当前时间(部分机型支持)。
十六进制: 10 FF 40 A0 [年] [月] [日] [时] [分] [秒]立即执行切纸动作。
十六进制: 1D 56 00走纸固定距离后执行切纸(由固件决定走纸距离)。
十六进制: 1D 56 42 00| 指令 | 十六进制 | 说明 |
|---|---|---|
| GS V 0 | 1D 56 00 | 全切 |
| GS V 1 | 1D 56 01 | 半切 |
| GS V 66 n | 1D 56 42 n | 走纸 n 行后切纸 |
画横线/竖线
Section titled “画横线/竖线”绘制直线。
十六进制: 10 FF 21 [X低] [X高] [Y低] [Y高] [宽度低] [宽度高] [高度低] [高度高]| 参数 | 说明 |
|---|---|
| X | 起始 X 坐标 |
| Y | 起始 Y 坐标 |
| 宽度 | 线条宽度 |
| 高度 | 线条高度 |
查询打印机所有信息
Section titled “查询打印机所有信息”查询打印机的完整信息。
十六进制: 10 FF 00 FF查询打印机状态
Section titled “查询打印机状态”查询当前打印机状态。
十六进制: 10 FF F9查询打印机电池电量。
十六进制: 10 FF 50 00查询蓝牙名称
Section titled “查询蓝牙名称”十六进制: 10 FF 50 11查询 MAC 地址
Section titled “查询 MAC 地址”十六进制: 10 FF 30 00查询 SN 号
Section titled “查询 SN 号”十六进制: 10 FF 20 00查询打印机型号
Section titled “查询打印机型号”十六进制: 10 FF 30 F0查询固件版本
Section titled “查询固件版本”十六进制: 10 FF 20 F0查询蓝牙固件版本
Section titled “查询蓝牙固件版本”十六进制: 10 FF 50 14十六进制: 10 FF 30 02NFC 标签指令
Section titled “NFC 标签指令”部分打印机支持 NFC 标签功能。
获取标签纸张信息
Section titled “获取标签纸张信息”十六进制: 10 FF A0 00获取标签 UID
Section titled “获取标签 UID”十六进制: 10 FF A0 01获取已使用长度
Section titled “获取已使用长度”十六进制: 10 FF A0 02获取剩余长度
Section titled “获取剩余长度”十六进制: 10 FF A0 03灰阶打印指令
Section titled “灰阶打印指令”部分打印机支持灰阶打印。
使能灰阶模式
Section titled “使能灰阶模式”十六进制: 10 FF E1 03灰阶图片打印
Section titled “灰阶图片打印”灰阶模式下打印图片,支持更丰富的灰度层次。
打印机会在特定情况下主动向 APP 发送状态信息。
设备状态上报
Section titled “设备状态上报”当打印机有异常状态时,会主动发送两个字节的状态。
| 数据头 | 状态类型 | 解析 |
|---|---|---|
| 0xFF | 0x00 | 打印机正常 |
| 0xFF | 0x01 | 过热 |
| 0xFF | 0x02 | 开盖 |
| 0xFF | 0x04 | 缺纸 |
| 0xFF | 0x08 | 低压 |
纸张类型上报
Section titled “纸张类型上报”设备侦测到实际纸张与设置不匹配时,会主动上报。
| 数据头 | 状态类型 | 解析 |
|---|---|---|
| 0xFE | 0x01 | 折叠黑标纸 |
| 0xFE | 0x02 | 连续卷筒纸 |
| 0xFE | 0x03 | 不干胶缝隙纸 |
中止打印任务上报
Section titled “中止打印任务上报”用户中止打印任务时的上报。
| 数据头 | 状态类型 | 解析 |
|---|---|---|
| 0xFD | 0x01 | 开始清除当前页面打印任务 |
| 0xFD | 0x02 | 清除当前打印任务结束 |
完整打印流程
Section titled “完整打印流程”推荐的打印流程顺序:
- 唤醒打印机 - 发送唤醒指令
- 使能打印机 - 启用打印机
- 打印图片 - 发送图片数据
- 打印定位 - 定位到下一标签(连续纸不需要)
- 结束打印任务 - 完成打印
示例指令序列
Section titled “示例指令序列”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 集成
Section titled “SDK 集成”各语言 SDK 封装了 ESC 指令的构建过程,具体使用方法请参考:
- Java SDK (Android) - Android 原生开发
- Objective-C SDK (iOS) - iOS 原生开发
- Swift SDK - iOS/macOS 现代开发
- Dart SDK - Flutter 跨平台开发
- JavaScript SDK - 小程序开发
- OpenHarmony SDK - HarmonyOS / OpenHarmony 应用