|
|
@@ -22,6 +22,7 @@ var (
|
|
|
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 打印一行文字(自动加换行符)
|
|
|
@@ -29,27 +30,15 @@ func ESCPOS_Text(text string) []byte {
|
|
|
return append([]byte(text), '\n')
|
|
|
}
|
|
|
|
|
|
-// ESCPOS_QRCode 打印二维码(GS ( k 指令,兼容 EMD807)
|
|
|
+// ESCPOS_QRCode 打印二维码(EMD807 使用 US Q 指令)
|
|
|
func ESCPOS_QRCode(data string) []byte {
|
|
|
- // GS ( k pL pH cn fn [params]
|
|
|
- // cn=49 (QR Code), fn=65 (model), fn=67 (size), fn=80 (store), fn=81 (print)
|
|
|
-
|
|
|
- pL := byte(len(data) + 3)
|
|
|
- pH := byte((len(data) + 3) >> 8)
|
|
|
-
|
|
|
- cmd := []byte{GS, '('} // 模型选择
|
|
|
-
|
|
|
- cmd = append(cmd, 0x04, 0x00, 0x31, 0x41, 0x32, 0x00) // QR Model 2
|
|
|
- cmd = append(cmd, 0x03, 0x00, 0x31, 0x43, 0x08) // Cell size 8
|
|
|
-
|
|
|
- // Store data
|
|
|
- cmd = append(cmd, GS, '(')
|
|
|
- cmd = append(cmd, pL, pH, 0x31, 0x50, 0x30) // fn=80 store
|
|
|
+ // 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)...)
|
|
|
-
|
|
|
- // Print QR
|
|
|
- cmd = append(cmd, GS, '(')
|
|
|
- cmd = append(cmd, 0x03, 0x00, 0x31, 0x51, 0x30) // fn=81 print
|
|
|
-
|
|
|
return cmd
|
|
|
}
|