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

蓝牙打印机打印二维码

分类: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 关注 分享

要回复文章请先登录注册

wnsuan

wnsuan

回复 Apple小赞 :
请问这个问题你解决了吗,我这里测试怎么只能打出字符串
2018-08-22 14:53
wnsuan

wnsuan

回复 7***@qq.com :
你好 我这里测试怎么只能打出字符串 不能打印二维码呢?
2018-08-22 10:15
wnsuan

wnsuan

回复 笑语相识 :
我也是,请问这个问题你解决了吗
2018-08-22 10:14
柿子

柿子

回复 Apple小赞 :
你的二维码打印出来了么?我用的也是商米V1。如果你的打印OK了,能否发个demo参考下。谢谢了。864564796@qq.com
2018-05-04 09:21
笑语相识

笑语相识

你好 我这里测试怎么只能打出字符串 不能打印二维码呢?
2018-04-16 01:38
Apple小赞

Apple小赞

很强,完全可以用的,受益匪浅
2018-03-26 10:05
Apple小赞

Apple小赞

回复 Apple小赞 :
还是先将字符串转成什么?
2018-03-23 16:37
Apple小赞

Apple小赞

回复 7***@qq.com :
我用的就是商米v1
2018-03-23 15:29
Apple小赞

Apple小赞

回复 7***@qq.com :
bytestr 二维码内容是字符串吗
2018-03-23 15:28
7***@qq.com

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

回复 Apple小赞 :
是的
2018-03-23 15:25