| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package service
- // 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, '@'} // 初始化打印机
- 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'} // 查询纸张状态
- FeedLineCmd = []byte{0x0A} // 换行
- )
- // ESCPOS_Text 打印一行文字(自动加换行符)
- func ESCPOS_Text(text string) []byte {
- return append([]byte(text), '\n')
- }
- // ESCPOS_QRCode 打印二维码(EMD807 使用 US Q 指令)
- func ESCPOS_QRCode(data string) []byte {
- // US Q n m <data> — EMD807 二维码指令
- // n = len(data) + 3 (pL + pH + m)
- // m = 0x31 (QR code)
- n := byte(len(data) + 3)
- cmd := []byte{0x1F, 'Q'} // US Q
- cmd = append(cmd, n, 0x00) // pL, pH
- cmd = append(cmd, 0x31) // m = QR code
- cmd = append(cmd, []byte(data)...)
- return cmd
- }
|