收藏
回答

小程序连接蓝牙打印机,输出结果是指令串

后端传输给前端打印指令串(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指令示例:

最后一次编辑于  2018-12-13
回答关注问题邀请回答
收藏

3 个回答

  • 迎宾
    迎宾
    2018-12-14

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

    2018-12-14
    赞同 3
    回复 1
    • 在云端
      在云端
      03-09

      请问直接打印出打印指令串的问题解决了吗?

      03-09
      1
      回复
  • 沧桑为饮i
    沧桑为饮i
    03-21

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

    03-21
    赞同
    回复
  • 在云端
    在云端
    03-09

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

    03-09
    赞同
    回复