7***@qq.com
7***@qq.com
  • 发布:2018-03-21 09:35
  • 更新:2023-12-04 23:25
  • 阅读:10910

蓝牙打印机打印二维码

分类:Native.js

蓝牙连接打印借鉴

var OutputStreamWriter = plus.android.importClass("java.io.OutputStreamWriter");  
//mac_address 蓝牙地址  
//byteStr 二维码内容  
function PrintQrCode(mac_address,byteStr) {  
    if (!mac_address) {  
        mui.toast('请选择蓝牙打印机');  
        return;  
    }  

    main = plus.android.runtimeMainActivity();  
    BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");  
    UUID = plus.android.importClass("java.util.UUID");  
    uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");  
    BAdapter = BluetoothAdapter.getDefaultAdapter();  
    device = BAdapter.getRemoteDevice(mac_address);  
    plus.android.importClass(device);  
    bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);  
    plus.android.importClass(bluetoothSocket);  

    if (!bluetoothSocket.isConnected()) {  
        console.log('检测到设备未连接,尝试连接....');  
        bluetoothSocket.connect();  
    }  

    console.log('设备已连接');  

    if (bluetoothSocket.isConnected()) {  
      var outputStream = bluetoothSocket.getOutputStream();  
      plus.android.importClass(outputStream);  
      var writer = new OutputStreamWriter(outputStream, 'GBK');   
      plus.android.importClass(writer);  

      //init  
      writer.write(0x1B);  
      writer.write(0x40);  
      writer.flush();  

      var moduleSize = 8;  
      var bytes = plus.android.invoke(byteStr, 'getBytes', 'gbk');  
      var length = bytes.length;  

      console.log(length);  
      //打印二维码矩阵    
      writer.write(0x1D);// init    
      writer.write("(k");// adjust height of barcode    
      writer.write(length + 3); // pl    
      writer.write(0); // ph    
      writer.write(49); // cn    
      writer.write(80); // fn    
      writer.write(48); //    
      writer.write(byteStr);  

      writer.write(0x1D);  
      writer.write("(k");  
      writer.write(3);  
      writer.write(0);  
      writer.write(49);  
      writer.write(69);  
      writer.write(48);  

      writer.write(0x1D);  
      writer.write("(k");  
      writer.write(3);  
      writer.write(0);  
      writer.write(49);  
      writer.write(67);  
      writer.write(moduleSize);  

      writer.write(0x1D);  
      writer.write("(k");  
      writer.write(3); // pl    
      writer.write(0); // ph    
      writer.write(49); // cn    
      writer.write(81); // fn    
      writer.write(48); // m    

      writer.flush();   
    }  
}
0 关注 分享

要回复文章请先登录注册

Apple小赞

Apple小赞

回复 Apple小赞 :
这个是这么引的吗?
2018-03-23 15:17
Apple小赞

Apple小赞

回复 7***@qq.com :
var OutputStreamWriter = plus.android.importClass('java.io.OutputStreamWriter')
2018-03-23 15:17
Apple小赞

Apple小赞

回复 7***@qq.com :
我的打印没有任何提示,没打出来
2018-03-23 15:16
7***@qq.com

7***@qq.com (作者)

回复 Apple小赞 :
有什么问题吗????
2018-03-23 14:42
7***@qq.com

7***@qq.com (作者)

回复 笑语相识 :
嗯,已经成功打印,测试机是商米v1、佳博ZH-380
2018-03-23 14:42
Apple小赞

Apple小赞

大神出来解释一下呗
2018-03-22 21:42
Apple小赞

Apple小赞

打印不出来,我试了
2018-03-22 21:38
笑语相识

笑语相识

你好,请问你实现了打印二维码了吗?
2018-03-21 17:35