719715173@qq.com
719715173@qq.com
  • 发布:2018-03-21 09:35
  • 更新:2021-01-28 21:00
  • 阅读:7009

蓝牙打印机打印二维码

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

要回复文章请先登录注册

lulu_meng0217@163.com

lulu_meng0217@163.com

回复 Apple小赞 :
请求帮助
2021-01-28 21:00
lulu_meng0217@163.com

lulu_meng0217@163.com

回复 446725516@qq.com :
同问,解决了没。老哥
2021-01-28 20:59
lqw830502@126.com

lqw830502@126.com

回复 今夕何夕也 :
你是怎么打印条码的?
2020-10-27 17:21
haapy

haapy

回复 那年暑假 :
方便加微信交流下么
2020-08-31 14:07
haapy

haapy

回复 今夕何夕也 :
方便加微信交流下么 我wx everccnight 我这边想打印下条码
2020-08-31 14:00
今夕何夕也

今夕何夕也

大佬,我这边打印条码文字都没问题,但就是打印不出二维码,用你的代码也是不行,不报错,这是为什么?
2020-08-22 01:02
1113728359@qq.com

1113728359@qq.com

我用了你的这个代码,打印没有反应是什么原因呢?控制台也没有报错
2019-12-10 22:44
微博动漫

微博动漫

回复 wnsuan :
拒绝了吗
2019-10-22 12:01
1016231064@qq.com

1016231064@qq.com

回复 Apple小赞 :
你好 bytestr 是二维码包含的内容字符串吗,还是要转成其他的才行的,我打印的时候打印机无反应
2019-10-09 15:55
温柔如斯

温柔如斯

回复 Apple小赞 :
这个直接传字符串就能打出来二维码还是?能否发个demo。1145769693@qq.com
2019-06-04 15:51