我的第一个工作Android项目,刚刚完成使用手机连接打印机然后打印小票的功能,单位买了一个类似车载的打印机,非常小巧,打印机的卖家附送了开发使用的手机连接打印机的代码,非常方便。
代码已经分享到我的git代码库,
https://github.com/hejiawang/PrintDemo
下载地址:
https://codeload.github.com/hejiawang/PrintDemo/zip/master
下载下来基本就能直接用到项目中了,当然,要根据具体业务修改一下了。。。
里面还有关于打印格式的工具类,能够直接使用,不过使用的时候要注意 /n 符号,不然打印不出格式,比如这个工具类的第二个方法,
- /**
- * 排版居中内容(以’:’对齐)
- *
- * 例:姓名:李白
- * 病区:5A病区
- * 住院号:11111
- *
- * @param msg
- * @return
- */
- public static String printMiddleMsg(LinkedHashMap<String, String> middleMsgMap) {
- sb.delete(0, sb.length());
- String separated = “:”;
- int leftLength = (LINE_BYTE_SIZE – getBytesLength(separated)) / 2;
- for (Entry<String, String> middleEntry : middleMsgMap.entrySet()) {
- for (int i = 0; i < (leftLength – getBytesLength(middleEntry.getKey())); i++) {
- sb.append(” “);
- }
- sb.append(middleEntry.getKey() + “:” + middleEntry.getValue());
- }
- return sb.toString();
- }
在构建map时,map的值一定要以 \n 结尾,才会打印出相应的格式,、
- LinkedHashMap<String, String> middleMsgMap = new LinkedHashMap<String, String>();
- middleMsgMap.put(“日期 “, ” “ + timeData + “\n”);
- middleMsgMap.put(“时间 “, ” “ + timeL + “\n”);
- middleMsgMap.put(“里程 “, ” “ + mileage + “\n”);
- middleMsgMap.put(“金额 “, ” “ + money + “\n”);
- middleMsgMap.put(“余额 “, ” “ + balance + “\n”);
- String content = BluetoothPrintFormatUtil.printMiddleMsg(middleMsgMap);
- mService.sendMessage(content + “\n”, “GBK”);