Android藍牙打印格式排版

最近由於項目需求,在做藍牙打印的功能。Android連接藍牙打印機網上滿天飛,但是內容的排版卻很少。

我也是研究了下,自己封裝了一個工具類希望可以方便開發。

這個類叫 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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章