项目中需要用到android设备通过USB连接热敏打印机打印图文混排的小条,总结一下。

外部主要是用这个方法来打印:

    /*** 打印核验小条* 子线程中运行*/private static int times = 0;public void printVerifyData(String tmpName,String tmpIdNo,String curName,String idcardNo,String headerPic) {while(!isConnect){isConnect = doConnect();times ++ ;Log.d("lixm","isConnect = " + isConnect + ", times = " + times);if(times >= TRY_COUNT){// todo send errorsendPrintError();return;}try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}ArrayList<byte[]> data = new ArrayList<>(); // 用于装载打印数据try {PrinterWriter printer = new PrinterWriter58mm();// printer.init();  // 初始化打印机printer.setAlignCenter();data.add(printer.getDataAndReset());// 打印标题printer.setEmphasizedOn();printer.setFontSize(1);printer.print(Const.VALUE.TITLE);printer.printLineFeed();printer.setFontSize(0);printer.setEmphasizedOff();// 打印虚线printer.setAlignCenter();printer.printDottedLine();printer.printLineFeed();data.add(printer.getDataAndReset());// 打印了一个图片printer.setAlignCenter();ArrayList<byte[]> image1 = printer.getImageByte(headerPic);if(image1 == null || image1.size() == 0){ToastUtils.showShort("照片转换异常,请重新打印!");sendPrintError();return;}data.addAll(image1);// 打印虚线printer.printDottedLine();printer.printLineFeed();  // 输出并换行printer.setLineHeight(80);   // 设置行间距printer.setEmphasizedOn();printer.printInOneLine("姓名:", tmpName, 0);printer.printLineFeed();printer.printInOneLine("身份证号码:", tmpIdNo, 0);printer.printLineFeed();printer.printInOneLine("凭证有效期:", TimeUtils.date2String(new Date(),new SimpleDateFormat("yyyy年MM月dd日")), 0);printer.printLineFeed();printer.setEmphasizedOff();// 打印虚线printer.setAlignCenter();printer.printDottedLine();printer.printLineFeed();  // 输出并换行data.add(printer.getDataAndReset());// todo 这里打印二维码String oriString = curName+"|" +idcardNo;String qrString = Base64.encodeToString(oriString.getBytes("UTF-8"),Base64.NO_WRAP);Log.d("lixm","qrString = " + qrString);Bitmap qrCodeImage = QRCodeUtil.createQRCodeBitmap(qrString, 300, "0");//byte[] qrData = PrinterUtils.decodeBitmap(qrCodeImage);ArrayList<byte[]> qrData = printer.getImageByte(qrCodeImage);data.addAll(qrData);// 打印虚线printer.setAlignCenter();printer.printDottedLine();printer.printLineFeed();  // 输出并换行printer.setAlignLeft();printer.setEmphasizedOn();String tips1 = "     提示:凭二维码扫码进站,仅限本人使用,"+ "\n";String tips2 = "     如遇遗失请重新补打凭证"+"\n";printer.print(tips1);printer.print(tips2);printer.setEmphasizedOff();printer.printLineFeed();printer.printLineFeed();printer.feedPaperCutPartial();  // 切纸data.add(printer.getDataAndClose());boolean isPrintResult = printTest(data);  // 打印数据//printer.close();//printer = null;if(isPrintResult){BusEvent busEvent = new BusEvent();busEvent.action = "printer_completed";busEvent.data = "ok";EventBus.getDefault().post(busEvent);}else{sendPrintError();}} catch (IOException e) {LogUtils.file(e.getCause() + "--" + e.getMessage());sendPrintError();}}

完整代码请点击这里

Android连接USB打印机相关推荐

  1. android 蓝牙地址连接打印机,android 连接蓝牙打印机 BluetoothAdapter

    android 连接蓝牙打印机 BluetoothAdapter 源码下载地址:https://github.com/yylxy/BluetoothText.git public class Prin ...

  2. Android 连接USB设备(主机模式)

    Android 连接USB设备(主机模式) Android 连接USB设备(配件模式) 两种模式(主机.配件) 首先,要了解Android 连接USB设备主要通过两种模式, USB 配件模式. USB ...

  3. Android 连接USB默认选中MTP模式

    Android 连接USB默认选中MTP模式 需求分析 Android系统默认连接USB会显示:正在通过USB为此设备充电,并且无法在电脑查看存储内容.需要实现的效果:Android 连接USB默认选 ...

  4. Android 连接USB设备(配件模式)

    Android 连接USB设备(主机模式) Android 连接USB设备(配件模式) 上一章介绍了Android USB主机模式,以及两种模式的区别,本章主要介绍USB 配件模式. USB 配件模式 ...

  5. Android 连接 TSC打印机, 打印标签(文字、图片)

    TSC选配模式有三 :以太网(WiFi).蓝牙.USB ,并提供了开发文档 1.先去官网下载,Android SDK SDK 中包含,三种模式 ,不必逐个下载了,文档中有对 接口很详细的解释 解压如下 ...

  6. android连接usb后默认app,android – 记住USB连接,但不要启动应用程序

    我正在处理的应用程序通过USB连接成功连接设备. 但是,这会在连接USB设备时始终启动活动时产生不良影响.没有启动应用程序,我无法记住默认值.在连接上启动应用程序不是一个理想的效果.下面的小代码示例是 ...

  7. Android连接蓝牙打印机

    前言 在之前写过一篇Android操作蓝牙打印机(上),当时也是因为自己在工作中确实走了许多弯路,所以当时计划着用两篇文章详细阐述蓝牙打印的整个流程,也是对工作的一种总结,其次也可以给蓝牙打印方面感觉 ...

  8. android连接小票打印机,打印小票数据的两种模式

    为了开发android无线点餐系统,需要用到打印小票任务,根据网上查找资料所得,学习了两种方法,一种为通过tomcat服务连接服务器所连接的打印机打印,一种为直接连接网络打印机打印 一.通过tomca ...

  9. android连接usb外设通讯_Android设备使用USB的硬件接口

    最近业界的发展显示,智能手机/便携系统与自动化系统或机械系统之间存在巨大的市场潜力.2011年春季谷歌引入的Android开放访问架构,开启了基于Android操作系统的设备的巨大可能--允许智能手机 ...

  10. mui android连接蓝牙打印机打印

    android设备连蓝牙打印机打印,代码如下:  mui.plusReady(function(){             main = plus.android.runtimeMainActivi ...

最新文章

  1. 摄像头模组(CCM)与镀膜
  2. pcntl_fork 导致 MySQL server has gone away 解决方案
  3. linux 命令 —-— vi编辑器
  4. JSON动态解析()
  5. 图像分割matlab_基于MATLAB的指针示数识别
  6. 高德sdk_联手HERE,高德进军地图海外市场 | CES 2020
  7. lucene简单实例
  8. 页面显示pdf_PDF怎样合并?在Mac上合并PDF文件的最佳方法
  9. 通过反射获取类的所有属性和方法
  10. 关于MPLS静态 LSP建立的问题——针对上题的另一种解法
  11. modulenotfounderror python_你所不知道的 【ModuleNotFoundError: No module named ''; '' is not a package】...
  12. arcmap新手教程_ArcGIS入门教程来袭,零基础的同学快看过来!
  13. php 七牛云 视频加水印
  14. 文本分割之水平投影法基于OpenCV(python)版实现
  15. ElGamal公钥密码算法(Python实现)
  16. 解决“ImportError: cannot import name ‘_validate_lengths‘”问题
  17. Oracle 几种更新(Update语句)查询的方法
  18. 还记得最初的梦想么?——2018年小结
  19. 架构设计面试题 (史上最全、持续更新、吐血推荐)
  20. Spark任务调度概述_大数据培训

热门文章

  1. dft频谱泄漏matlab,对于DFT频谱泄漏问题的研究
  2. 千亿数仓第四章(指标计算_订单分析地域、分类维度分析业务开发)
  3. ATmega / AVR单片机型号标识规则及选型
  4. 第四代计算机cpu采用的超大规模集成电路,计算机一级试题a.doc
  5. smartupload java_java组件smartupload实现上传文件功能
  6. 美国的卫星导航系统服务器,中国的北斗卫星和美国的gps到底哪个更厉害?
  7. 画法几何,工程制图基础.....多角度平面投影图推断立体空间结构,实际距离的判别等
  8. 转载 戴仁光:给专职站长的网络创业建议
  9. 极坐标格式下的二维傅里叶变换与逆变换推导
  10. PcShare服务端改造