小程序连接蓝牙打印机,输出结果是指令串
发布于 7 年前 作者 qshao 11948 次浏览 来自 问答

后端传输给前端打印指令串(CPCL指令集)

前端处理后将数据传递给打印机,发现打印机直接将指令识别为打印内容输出了

例如下面一段伪代码 执行后结果直接打印"! 0 200 200 210 1 T 4  0 30 40 Hello World PRINT"

let printData = string2buffer("! 0 200 200 210 1 T 4  0 30 40 Hello World PRINT");
 
printTemplate(deviceId, serviceId, characteristicId, printData);
 
string2buffer: function (str) {
    // 首先将字符串转为16进制
    let val = ""
    for (let i = 0; i < str.length; i++) {
      if (val === '') {
        val = str.charCodeAt(i).toString(16)
      } else {
        val += ',' + str.charCodeAt(i).toString(16)
      }
    }
    // 将16进制转化为ArrayBuffer
    return new Uint8Array(val.match(/[\da-f]{2}/gi).map(function (h) {
      return parseInt(h, 16)
    })).buffer
  }

CPCL指令示例:

3 回复

我也遇到同样问题 大佬求解

有没有官方大佬 出来解答一下

楼主,请问该问题有解决吗?怎样解决的,麻烦告知一下,非常感谢

回到顶部