收藏
评论

打印机打印标签

项目地址:https://github.com/dyl169/WAPP_printer.git有需要的可以参考一下

1.在需要调用蓝牙的页面中
初始化是传入设备的主服务UUID base.Ble.initBle(['FFF0', '0A71']);

2.在onLoad中执行监听函数(记得在onUnload中 remove掉事件监听)
//初始化所有监听
    initListen: function() {
        //监听蓝牙可用状态
        base.Event.listen(base.EventModel.EVENT_BLESTATE, function(data) {
            if (data.code) {
                console.log('蓝牙已打开')
                base.blestate = true;
            } else {
                console.log('蓝牙已关闭')
                base.blestate = false;
            }
        })

        //监听扫描设备
        base.Event.listen(base.EventModel.EVENT_SCAN, function(data) {
            if (data.stop) {
                console.log('停止扫描');
                that.setData({
                    bleSearchIng: false,
                })
            } else {
                var device = data.datainfo[0];
                console.log('扫描到的设备 : ' + JSON.stringify(device));
                that.data.deviceArray.push(device);
                that.setData({
                    deviceArray: that.data.deviceArray,
                    showDeviceDialog: true,
                })
            }
        })

        //监听蓝牙连接状态
        base.Event.listen(base.EventModel.EVENT_CONNSTATE, function(data) {
            console.log('连接状态变化');
            if (data.code == true) {
                console.log('index 连接成功')

                for (var i = 0; i < that.data.deviceArray.length; i++) {
                    if (that.data.deviceArray[i].deviceId === data.datainfo) {
                        that.data.connDevice = that.data.deviceArray[i];
                    }
                }

                that.setData({
                    connSucced: true,
                    connDevice: that.data.connDevice,
                })
            } else {
                that.setData({
                    connSucced: false,
                })
            }
        })

        //监听蓝牙值变化
        base.Event.listen(base.EventModel.EVENT_RECEIVE, function(result) {
            if (result.code == true && pageState == 'onLoad' || pageState == 'onShow') {
                var data = result.datainfo;
                console.log('main 页面接受到消息:' + data);

            }
        })
    },

3.如果打印机无法打印 请查看打印机说明书 知否支持TSPL或ESC指令指令 (本demo使用的佳博答应机)
  自行将PrintUtil.js中的打印指令修改为对应的打印指令即可


最后一次编辑于  2019-08-19
收藏

14 个评论

  • 深藏功与名。
    深藏功与名。
    2019-01-10

    这里是我踩坑完成结果,楼主的实例都可以用,就是这个1.5要改下(还有指令不要有空格,我之前出于代码习惯每次一个逗号都一个空格),不然神坑。分享一下避免更多的人躺坑。在这里也感谢楼主的无私奉献,节省了不少时间。以下是打印结果


    2019-01-10
    赞同
    回复 1
    • 张伟萍
      张伟萍
      2019-08-17
      松哥,麻烦请教个问题,小程序链接打印机,连上了打印机,指令也都写入成功了,但是打印机为啥没反应呢
      2019-08-17
      回复
  • 深藏功与名。
    深藏功与名。
    2019-01-09

    一开始是打印了二维码的,后面我取消打印二维码 光打印文字(就是这些中文) 结果是白纸一张


    2019-01-09
    赞同
    回复
  • 深藏功与名。
    深藏功与名。
    2019-01-09

    这个代码我基本上都没动,怕改坏了。不过

    2019-01-09
    赞同
    回复 12
    • 啊 五彩斑斓的黑
      啊 五彩斑斓的黑
      2019-01-09

      我是用的是佳博打印机 1、base.Ble.initBle([...])  这里初始化的是低功耗蓝牙打印机的主服务UUID 2、


      我使用的是TPSL指令  在打印的时候是需要设置每个元素的位置 你可以看一下TPSL的指令文档

      2019-01-09
      回复
    • 啊 五彩斑斓的黑
      啊 五彩斑斓的黑
      2019-01-09回复啊 五彩斑斓的黑

      这个是我打印的效果

      2019-01-09
      回复
    • 啊 五彩斑斓的黑
      啊 五彩斑斓的黑
      2019-01-09回复啊 五彩斑斓的黑

      你的纸张大小和我的纸张大小应该不一样吧,需要改动下

      2019-01-09
      回复
    • 深藏功与名。
      深藏功与名。
      2019-01-09回复啊 五彩斑斓的黑

      大小这个改了,但是怎么说呢?这个肯定不是造成中文无法打印的原因,我现在准备换你这个打印机试试,看下是不是这个原因造成的。毕竟同样的代码不存在2种结果。谢谢你在百忙当中为我解惑。

      2019-01-09
      回复
    • 深藏功与名。
      深藏功与名。
      2019-01-09回复啊 五彩斑斓的黑

      抱歉,忘记问了,能否给我说说你的打印机型号呢?我买个一模一样的

      2019-01-09
      回复
    查看更多(7)
  • 深藏功与名。
    深藏功与名。
    2019-01-09

    你好,通过你这个实例能打印英文和二维码。但是中文无法打印出来这个问题能否指教一二?控制台能够

    ArrayBuffer打印出原本的中文信息

    2019-01-09
    赞同
    回复 1
    • 啊 五彩斑斓的黑
      啊 五彩斑斓的黑
      2019-01-09

      中文也可以的,主要用到这几处


      2019-01-09
      回复

正在加载...

登录 后发表内容