当前位置:   article > 正文

Android 热敏打印机开发(蓝牙)_android rtprinter.jar

android rtprinter.jar

前言

由于自己工作原因,涉及到热敏打印机开发,因此自己写了一套热敏打印机SDK,目前暂时只支持蓝牙打印
我生成了jar包的形式,方便大家使用。里面代码的实现原理现在暂无时间去讲解,主要以如何使用为主。
SDK
源码地址
链接:https://github.com/875831461/ThomasPrinter

注意事项
目前只适配了蓝牙打印机,58型号80型号的均可以打印
已完成功能
扫描蓝牙
打印一行,打印一行两列,打印图片,打印条形码,二维码(需要打印机支持),倒置打印等。。
未完成功能
标签打印

效果图

在这里插入图片描述

步骤

如何导入jar包我就不说了。权限

 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
  <uses-permission android:name="android.permission.BLUETOOTH" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • 1
  • 2
  • 3
  • 4

当然了,如果你操作的API大于26,你还需要动态请求此权限,否则你会找不到蓝牙设备


   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if((checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) ){
                String[] permission = new String[]{
                        Manifest.permission.ACCESS_FINE_LOCATION
                };
                requestPermissions(permission, 11);
            }
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

代码

使用此方式可以注册监听/解绑监听打印机的所有状态

 ThomasPrinterManage.getInstance().registerOnThomasPrinterChangeListener()
 ThomasPrinterManage.getInstance().unregisterOnThomasPrinterChangeListener()
  • 1
  • 2

连接打印机

1.这种可以在打印机掉线时,如果打印机再次开机会自动连接,但是有时候会有问题

ThomasPrinterManage.getInstance().connectBluetoothDevice(this,address);
  • 1

2.推荐使用这种方式连接打印机

ThomasPrinterManage.getInstance().connectBluetoothDevice(address);
  • 1

发送数据

        Vector<Byte> data = new Vector<>();
        ThermalPrinter thermalPrinter = new ThermalPrinter();
        thermalPrinter.setCommand(data);
        thermalPrinter.initPrint();
        // according to your paper size
        thermalPrinter.setPageSizeEighty();
        //thermalPrinter.setPageSizeFiftyEight();
        thermalPrinter.setWhiteOnBlack();
        thermalPrinter.setAlignment(Alignment.CENTER);
        thermalPrinter.setFontSize(FontSize.LARGER);
        thermalPrinter.setText(getTextByte("White On Black"));
        thermalPrinter.cancelWhiteOnBlack();
        thermalPrinter.printAndFeedLine();
        thermalPrinter.putText(getTextByte("content"), FontSize.NORMAL, Alignment.CENTER,false);
        thermalPrinter.printAndFeedLine();
        thermalPrinter.putText(getTextByte("content"), FontSize.NORMAL, Alignment.RIGHT,true);
        thermalPrinter.printAndFeedLine();
        thermalPrinter.putText(getTextByte("content"), FontSize.BIG, Alignment.RIGHT,false);
        thermalPrinter.printAndFeedLine();
        thermalPrinter.putText(getTextByte("content"), FontSize.LARGER, Alignment.LEFT,false);
        thermalPrinter.printAndFeedLine();
        thermalPrinter.setUnderline(true);
        thermalPrinter.setText(getTextByte("content"));
        thermalPrinter.setUnderline(false);
        thermalPrinter.printAndFeedLine();
        thermalPrinter.putTextColumn(getTextByte("column one"), getTextByte("column two"),FontSize.NORMAL);
        thermalPrinter.putTextColumn(getTextByte("column one"), getTextByte("column two"),FontSize.NORMAL);
        thermalPrinter.putTextColumn(getTextByte("column one"), getTextByte("column two"),FontSize.BIG);
        thermalPrinter.putTextColumn(getTextByte("column one"), getTextByte("column two"),FontSize.NORMAL);
        // not useful for XML images
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.smart);
        thermalPrinter.putBitmap(bitmap);
        thermalPrinter.printBarCode("12345684",Alignment.CENTER,3,80);
        // this need printer support
        thermalPrinter.printQrCode(Alignment.CENTER,3,48,"thomas printer");
        thermalPrinter.setCutPaper();
        // if you connect more than one devices you can use this method
        ThomasPrinterManage.getInstance().writeSendDataAllDevice(data);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/559029
推荐阅读
相关标签
  

闽ICP备14008679号