我也是研究了下,自己封裝了一個工具類希望可以方便開發。
這個類叫 BluetoothPrintFormatUtil ,無需考慮敏感字符及E文
例如:要排版如下格式
在Android代碼中寫入如下代碼
StringBuffer sb = new StringBuffer();
//排版標題
sb.append(BluetoothPrintFormatUtil.printTitle("訂餐單\n"))
.append("日期:2013-06-25\n");
//排版People信息
LinkedHashMap<String, String> leftMsgMap = new LinkedHashMap<String, String>();
LinkedHashMap<String, String> rightMsgMap = new LinkedHashMap<String, String>();
leftMsgMap.put("姓名", "Aaron_lin");
leftMsgMap.put("病區", "11腦外科");
leftMsgMap.put("牀號", "123");
leftMsgMap.put("性別", "女");
rightMsgMap.put("住院號", "2112\n");
rightMsgMap.put("年齡", "22\n");
rightMsgMap.put("身高", "175cm\n");
rightMsgMap.put("BMI", "22.0\n");
sb.append(BluetoothPrintFormatUtil.printSymmetryMSG(leftMsgMap, rightMsgMap));
//排版點餐菜單信息 必須以 '$' 分隔菜單 格式是 菜譜名$數量$單價
LinkedHashMap<String, LinkedList<String>> menuMsgMap = new LinkedHashMap<String, LinkedList<String>>();
LinkedList<String> menuList = new LinkedList<String>();
menuList.add(" 紅燒鴨塊$2$22.0");
menuList.add(" 水煮魚片$1$25.0");
menuMsgMap.put("早餐", menuList);
menuList.clear();
menuList.add(" 農家小炒肉$1$18.0");
menuList.add(" 魚香肉絲1$2$18.0");
menuList.add(" 炒飯$1$18.0");
menuMsgMap.put("午餐", menuList);
menuList.clear();
menuList.add(" 紅燒雞塊$1$10.0");
menuMsgMap.put("晚餐", menuList);
sb.append(BluetoothPrintFormatUtil.printMenuMSG(menuMsgMap))
.append("總計:111.0\n")
.append("打印日期:2013-06-20\n\n\n");
System.out.println(sb.toString());
注意:單獨運行在Java平臺下會不對齊,此處主要運行在Android下
目前只封裝了這種排版格式,若有其他格式可以信息我。
BluetoothPrintFormatUtil.java 下載地址:http://download.csdn.net/detail/qq331710168/5647587