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

蓝牙打印机打印二维码

分类: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

回复 7***@qq.com :
你好,请问你是用手持设备商米V1打印 还需连蓝牙吗?
2018-09-06 11:17
那年暑假

那年暑假

回复 wnsuan :
不知道什么牌子,同事淘宝买的,需要连蓝牙
2018-08-30 17:16
wnsuan

wnsuan

回复 那年暑假 :
你是用什么打印机呢 需要连蓝牙吗
2018-08-30 17:13
那年暑假

那年暑假

回复 wnsuan :
我可以打得出二维码
2018-08-30 17:03
wnsuan

wnsuan

回复 那年暑假 :
请问你能打印出二维码了吗,我这边用佳博打印机打印出来是字符串你知道是为什么吗
2018-08-30 17:02
那年暑假

那年暑假

问下我想在二维码旁在打印一段文字该怎么弄
2018-08-28 08:59
那年暑假

那年暑假

回复 Apple小赞 :
是的
2018-08-28 08:58
wnsuan

wnsuan

回复 柿子 :
请问这个问题你解决了吗
2018-08-24 09:29
wnsuan

wnsuan

回复 笑语相识 :
离线打包是用eclipse吗?具体怎么操作可以教一下我妈
2018-08-23 10:25
笑语相识

笑语相识

回复 wnsuan :
我直接离线打包,调用原生的打印处理的。
2018-08-23 10:02