技能獲得!
連了 2 部收據打印機到網路上,其中一部連上了現金抽屜。今晚開始了艱苦的摸索。
先是想找一些別人的程式庫。沒想到很少人玩這個,用 swift 的尤少。幾個還是用 CocoaPod 發放,這太舊了,他媽的我的 Mac 上連 Ruby 都過時了。沒理由為了個 Pod 動到系統的 Ruby,這他媽太扯了。果斷放棄所有的 Pod。
這時心想直接控制打印機不會太難吧。果然查到 EPSON 製訂的 ESC/POS 指令表,全世界的收據打印機看來都會遵守。看去是用 TCP 連上去之後,往它傳送二進位指令就好了。但這網路似乎有點麻煩,又沒經驗。誰會想到寫 iOS app 還要玩 socket?
然後找到一個 swift 寫的程序,作者是大陸人,註解居然打中文。這個連程式庫都不是。本想放棄,但一想,看他怎麼傳指令吧。好,居然是藍牙版的。這裡有一堆在藍牙上搜索並過濾打印機的邏輯。這對我沒有用。忽然想起在另一個庫看到連接LAN的碼。不如結合一下?
於是結合兩個程序,弄了個物件出來。成功了!直接傳送中文字都能出。繁體字呢?改用UTF8出了亂碼。好吧,這是國內產的打印機,用回國標碼好了。OK,它包括了繁體字宋體。能出!最怕的編碼問題都解決了。一維條碼也能印。
二維QR-CODE沒來得及搞,但應該沒問題。
另外也試了個把全部東西畫成一張圖輸出的,也是可以。但是它是腳先出來,而且筆畫不夠清晰,不是太理想。還是用前面那個。