不知道大家有沒有遇到這種情況,有些東西想整理但卻不知道怎么去整理,在做之前一頭霧水,百度上也找不到答案,然后搞出來又發現沒什么內容,所以好像也沒什么可整理,
但是更多,我想說的是,我們還是要學會去總結,為什么我花了那么長時間,以及下次遇到這種情況,我如何下手?也希望對和我這樣的菜菜有點幫助,
需求
Android藍牙連接TSC標簽列印機列印,(熱敏列印機要用熱敏紙)
說明
有關列印機,一般都會提供 有關開發的 SDK ,開發檔案,Android可以參考,其實這可能對很多人來說都是很簡單的一件事,但是,難免會遇到一些意外,
回顧當時
其實剛開始還有點信心滿滿,然后把 jar 包復制到 lib 檔案夾中,然后將檔案提供的代碼復制到 Android 中,然后結果:失敗的,崩掉
然后就開始了我的找問題之路···各種測驗,大多都是靠運氣
效果

總結
- 問題一:在代碼中有一個引數是設定列印的份數,以及初始化的時候會設定紙張的大小間隙等等,列印機列印一張出來很多張,并且執行一次之后列印機就報 卡紙例外?
這有時候不是代碼問題,開發的時候會給一個工具包,進行感應器矯正就可以正常了(這里沒有連接列印機,先讀取狀態連接列印機再進行操作)

- 問題二:指令不執行
注意你的指令后面有沒有 /r/n ,指令可以分段,在結束位置加上 /r/n 執行

- 問題三:列印的文本較長,不會自動換行(比如上方的二三行是一個內容)
這里我不知道有沒有什么特定的設定,但是我通過其他方式實作了效果,把原有的字串進行分割分行列印
for (int i = 0; i < invCode.length(); i = i + 10) {
TscDll.sendcommand("TEXT 350," + (75 + i * 3) + ",\"0\",0,12,12,3,\" " + invCode.substring(i, i + 10 < invCode.length() ? i + 10 : invCode.length()) + "\" \r\n ");
}//invCode為列印的內容
- 問題四:中文亂碼問題(上面效果圖就是中文亂碼格式之一,成功的沒有保存圖片)
剛開始我也看了檔案,在列印文字的時候可以選擇相應的字體進行列印,首先保證這個列印機存在某種字體支持中文(用工具把字體傳入列印機),然后進行呼叫,根據這個思路,進行了一系列的操作還是無法解決中文亂碼的問題
實際上操作是不要直接傳中文,要將文字轉換為 byte[] 型別進行提交
String SC1="這是一段文字";
byte[] QQ2 = new byte[1024];
try {
QQ2=SC1.getBytes("GB2312");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
TscDll.sendcommand("TEXT 20,30,\"FONT001\",0,2,2,\"");
TscDll.sendcommand(QQ2);
TscDll.sendcommand("\"\r\n");
最后
這是兩個月之后再回過頭來整理,不知道有沒有遺漏的地方,雖然好像是一個很簡單的功能,but 這是從外部對接過來的專案,遇到了一系列的配置問題不說(比如之前我們會參考v4的包,但是現在都統一AndroidX),再到列印檔案的閱讀(還是英文版的),根據提供的demo進行除錯,以及遇到的一系列問題,以及百度上找不到答案的焦急(也找了官網),然后一遍一遍讓自己靜下心來閱讀參考檔案,,,年前做的,再到年后再去客戶那邊的時候,已經正在使用了,當時第一眼還沒認出來那竟是我做的東西,那一刻,一丟丟的成就感??
博客園不知道怎么分享上傳的檔案,把壓縮包放在了 CSDN 上了 https://download.csdn.net/download/xqz0618/12240632


轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/25150.html
標籤:Android
