|
|
@@ -1,21 +1,27 @@
|
|
|
package service
|
|
|
|
|
|
-// ESC/POS commands for 58mm thermal printer (EMD807 compatible)
|
|
|
+// ESC 指令集 for EMD807 (79.5mm 热敏打印机)
|
|
|
+// Font A = 12×24 dots, 每行 32 字符; Font B = 9×17 dots, 每行 42 字符
|
|
|
|
|
|
const (
|
|
|
ESC = 0x1B
|
|
|
GS = 0x1D
|
|
|
+ DC2 = 0x12 // 设备控制
|
|
|
)
|
|
|
|
|
|
var (
|
|
|
- InitCmd = []byte{ESC, '@'} // 初始化打印机
|
|
|
- AlignLeftCmd = []byte{ESC, 'a', 0} // 左对齐
|
|
|
- AlignCenterCmd = []byte{ESC, 'a', 1} // 居中对齐
|
|
|
- CutPaperCmd = []byte{GS, 'V', 66, 0} // 切纸
|
|
|
- DoubleHeightCmd = []byte{ESC, '!', 0x11} // 双倍高度
|
|
|
- NormalCmd = []byte{ESC, '!', 0x00} // 正常大小
|
|
|
- BoldOnCmd = []byte{ESC, 'E', 1} // 加粗
|
|
|
- BoldOffCmd = []byte{ESC, 'E', 0} // 取消加粗
|
|
|
+ InitCmd = []byte{ESC, '@'} // 初始化打印机
|
|
|
+ SelfTestCmd = []byte{DC2, 'T'} // DC2 T — 打印自测页
|
|
|
+ AlignLeftCmd = []byte{ESC, 'a', 0} // 左对齐
|
|
|
+ AlignCenterCmd = []byte{ESC, 'a', 1} // 居中对齐
|
|
|
+ CutPaperCmd = []byte{ESC, 'i'} // ESC i — EMD807 全切纸
|
|
|
+ HalfCutCmd = []byte{ESC, 'm'} // ESC m — 半切(留一点连接)
|
|
|
+ DoubleHeightCmd = []byte{ESC, '!', 0x11} // 双倍高度+宽度
|
|
|
+ NormalCmd = []byte{ESC, '!', 0x00} // 正常大小
|
|
|
+ BoldOnCmd = []byte{ESC, 'E', 1} // 加粗
|
|
|
+ BoldOffCmd = []byte{ESC, 'E', 0} // 取消加粗
|
|
|
+ FontBCmd = []byte{ESC, 'M', 1} // Font B (9×17, 42 chars/line)
|
|
|
+ PaperStatusCmd = []byte{ESC, 'v'} // 查询纸张状态
|
|
|
)
|
|
|
|
|
|
// ESCPOS_Text 打印一行文字(自动加换行符)
|