Android连接USB打印机
项目中需要用到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打印机相关推荐
- android 蓝牙地址连接打印机,android 连接蓝牙打印机 BluetoothAdapter
android 连接蓝牙打印机 BluetoothAdapter 源码下载地址:https://github.com/yylxy/BluetoothText.git public class Prin ...
- Android 连接USB设备(主机模式)
Android 连接USB设备(主机模式) Android 连接USB设备(配件模式) 两种模式(主机.配件) 首先,要了解Android 连接USB设备主要通过两种模式, USB 配件模式. USB ...
- Android 连接USB默认选中MTP模式
Android 连接USB默认选中MTP模式 需求分析 Android系统默认连接USB会显示:正在通过USB为此设备充电,并且无法在电脑查看存储内容.需要实现的效果:Android 连接USB默认选 ...
- Android 连接USB设备(配件模式)
Android 连接USB设备(主机模式) Android 连接USB设备(配件模式) 上一章介绍了Android USB主机模式,以及两种模式的区别,本章主要介绍USB 配件模式. USB 配件模式 ...
- Android 连接 TSC打印机, 打印标签(文字、图片)
TSC选配模式有三 :以太网(WiFi).蓝牙.USB ,并提供了开发文档 1.先去官网下载,Android SDK SDK 中包含,三种模式 ,不必逐个下载了,文档中有对 接口很详细的解释 解压如下 ...
- android连接usb后默认app,android – 记住USB连接,但不要启动应用程序
我正在处理的应用程序通过USB连接成功连接设备. 但是,这会在连接USB设备时始终启动活动时产生不良影响.没有启动应用程序,我无法记住默认值.在连接上启动应用程序不是一个理想的效果.下面的小代码示例是 ...
- Android连接蓝牙打印机
前言 在之前写过一篇Android操作蓝牙打印机(上),当时也是因为自己在工作中确实走了许多弯路,所以当时计划着用两篇文章详细阐述蓝牙打印的整个流程,也是对工作的一种总结,其次也可以给蓝牙打印方面感觉 ...
- android连接小票打印机,打印小票数据的两种模式
为了开发android无线点餐系统,需要用到打印小票任务,根据网上查找资料所得,学习了两种方法,一种为通过tomcat服务连接服务器所连接的打印机打印,一种为直接连接网络打印机打印 一.通过tomca ...
- android连接usb外设通讯_Android设备使用USB的硬件接口
最近业界的发展显示,智能手机/便携系统与自动化系统或机械系统之间存在巨大的市场潜力.2011年春季谷歌引入的Android开放访问架构,开启了基于Android操作系统的设备的巨大可能--允许智能手机 ...
- mui android连接蓝牙打印机打印
android设备连蓝牙打印机打印,代码如下: mui.plusReady(function(){ main = plus.android.runtimeMainActivi ...
最新文章
- 摄像头模组(CCM)与镀膜
- pcntl_fork 导致 MySQL server has gone away 解决方案
- linux 命令 —-— vi编辑器
- JSON动态解析()
- 图像分割matlab_基于MATLAB的指针示数识别
- 高德sdk_联手HERE,高德进军地图海外市场 | CES 2020
- lucene简单实例
- 页面显示pdf_PDF怎样合并?在Mac上合并PDF文件的最佳方法
- 通过反射获取类的所有属性和方法
- 关于MPLS静态 LSP建立的问题——针对上题的另一种解法
- modulenotfounderror python_你所不知道的 【ModuleNotFoundError: No module named ''; '' is not a package】...
- arcmap新手教程_ArcGIS入门教程来袭,零基础的同学快看过来!
- php 七牛云 视频加水印
- 文本分割之水平投影法基于OpenCV(python)版实现
- ElGamal公钥密码算法(Python实现)
- 解决“ImportError: cannot import name ‘_validate_lengths‘”问题
- Oracle 几种更新(Update语句)查询的方法
- 还记得最初的梦想么?——2018年小结
- 架构设计面试题 (史上最全、持续更新、吐血推荐)
- Spark任务调度概述_大数据培训
热门文章
- dft频谱泄漏matlab,对于DFT频谱泄漏问题的研究
- 千亿数仓第四章(指标计算_订单分析地域、分类维度分析业务开发)
- ATmega / AVR单片机型号标识规则及选型
- 第四代计算机cpu采用的超大规模集成电路,计算机一级试题a.doc
- smartupload java_java组件smartupload实现上传文件功能
- 美国的卫星导航系统服务器,中国的北斗卫星和美国的gps到底哪个更厉害?
- 画法几何,工程制图基础.....多角度平面投影图推断立体空间结构,实际距离的判别等
- 转载 戴仁光:给专职站长的网络创业建议
- 极坐标格式下的二维傅里叶变换与逆变换推导
- PcShare服务端改造