Android连接USB打印机

news/2024/10/18 8:30:33/

项目中需要用到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();}}

完整代码请点击这里


http://www.ppmy.cn/news/338926.html

相关文章

Android蓝牙打印机,带你真正了解各种打印格式

本文主要讲解蓝牙打印机在打印小票的过程中&#xff0c;如何打印各种常见格式。由于之前需要调试打印格式&#xff0c;但是苦于网上没有详细的讲解教程&#xff0c;无奈只能自给自足&#xff0c;自己封装了一个。如果各位盆友正在或者曾经苦恼蓝牙打印机的打印格式&#xff0c;…

安卓系统连接打印机

因为项目需要&#xff0c;在安卓系统连接USB打印机&#xff1a; 1、尝试PRINTSHARE等软件&#xff0c;有的平板可以识别但无法打印&#xff0c;有的平板找不到打印机&#xff1b; 2、网络上理论可行的方案&#xff1a;LINUX内核加载USB打印驱动&#xff0c;再编译安卓系统&am…

安卓调用PrinterShare实现无线打印功能

最近项目需要用到蓝牙打印,百度了很多资料,关于安卓移动打印的文章都不是很详细。要知道自己去写一个蓝牙打印模块那可是一个比较大的工作量了,而且还需要对市面上的打印机进行兼容。这个我引用一篇文章大家看下: 一、Android客户端打印技术现状 云打印 在Android KitKat之…

Android-WiFi打印功能-实现

一、 简介 1. 依赖说明 1&#xff09; Android4.4&#xff08;KitKat&#xff0c;api-19&#xff09;及以上设备&#xff1b; 2&#xff09; 安装Mopria的“mopria print service”打印服务。 2. mopria print service介绍 “mopria print service”为Mopria联盟…

安卓设备连接USB打印机

首先&#xff0c;感谢CSDN这个平台&#xff0c;为广大程序员提供一个相互交流的平台&#xff0c;其次&#xff0c;感谢广大程序员&#xff0c;让我学到了很多。这篇博客的内容也是我归纳了诸多博主的内容。亲测有效。废话少说&#xff0c;直接代码 1&#xff0c;主activity p…

打印机模拟器下载

1、去苹果开发者中心下载&#xff0c;下载里面的Hardware IO Tools。 https://developer.apple.com/downloads 2、运行工具包里的Printer Simulator 3、此时模拟器和手机一样可以实现打印了。

安卓开发中wifi连接打印机打印图片

1.手机连接上打印机的wifi后 public void print(final IWebview iWebview, JSONArray array) { this.mIWebview iWebview; this.activity iWebview.getActivity(); this.mContext iWebview.getContext(); this.mCallBackID array.optStri…

Android 使用第三方软件PrinterShare实现USB 或WIFI 打印功能

想要调用第三方软件首先必须知道intent 这里使用逆向工具获取清单文件的IntentFilter PrinterShare 清单 <activity android:configChanges"keyboardHidden|locale|orientation|screenSize" android:icon"drawable/icon_title" android:name"com.…