五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

微信小程序連接藍牙打印機示例

2022-11-11 18:40 作者:bili_52639594022  | 我要投稿

小程序連接藍牙打印機打印文本與二維碼等示例在 github 上都能找到一些,唯獨打印圖片這個案例幾乎沒有。希望能幫助到有打印圖片需求的小伙伴。


測試打印機:凱盛諾 PTP-II-UBC 58mm 便攜熱敏打印機

測試環(huán)境有:Android微信 , IOS微信;其中 Android 和 IOS 在打印文本與二維碼速率相對一致,但 IOS 打印圖片幾乎慢到無法打印的情況(聽說藍牙打印機在 IOS 中受限制,需要與 IOS 合作授權,在斑馬品牌的一款打印機用 IOS 就能打印出來。即使是 Android ,小程序打印圖片比打印文本會慢許多,并不是打印機的問題,而是小程序只能使用低功率藍牙,受限在一次發(fā)送 20 個字節(jié)的數(shù)據(jù),需要分段遞歸發(fā)送,圖片數(shù)據(jù)可以達到幾萬、幾十萬個字節(jié)。)

打印機指令類型:ESC/POS 指令集 (打印機產家都會提供對應的指令文檔,此 demo 中使用十進制的數(shù)據(jù)格式的指令,十六進制的指令或者更多指令的使用方式可以參考另一個示例小程序藍牙打印 miniprogram-bluetoothprinter)

示例功能

連接藍牙打印機

打印文本 (打印中文出現(xiàn)亂碼,因為打印機默認的編碼是 GB2312,需要將 UTF-8 轉 GB2312,這里用的輕小的GBK 庫,也可以使用text-encoding)

打印二維碼(使用指令打印內置二維碼樣式,或者用圖片方式打印定制二維碼)

打印任意圖片(此示例的重點, canvas 繪制圖片,wx.canvasGetImageData()取得 Uint8ClampedArray后再轉成位圖數(shù)據(jù),使用圖片水平取模數(shù)據(jù)打印指令打印位圖數(shù)據(jù))

效果圖

? ?

Demo 中連接打印機的流程

關于找藍牙設備中能用的 Characteristic,這里貼出對應的代碼,關注注釋部分

圖片來源

在 Demo 中手機選任意一張圖片用 canvas 繪制,wx.canvasGetImageData()取得 Uint8ClampedArray 類型的圖像像素點數(shù)據(jù)。


位圖數(shù)據(jù)

需要把 Uint8ClampedArray 類型的數(shù)據(jù)轉成打印機識別的點陣位圖數(shù)據(jù)(也可以讓后臺實現(xiàn)圖片轉位圖數(shù)據(jù),參考熱敏打印機編程 ESC/POS 指令)。


不同打印機廠家的指令集可能不同,但打印圖片的位圖數(shù)據(jù)是一樣的。

貼出遞歸發(fā)送二進制數(shù)據(jù)到藍牙的代碼

貼出發(fā)送逐行圖片數(shù)據(jù)的代碼

主要參考

  • 微信低功率藍牙

  • 小程序藍牙打印 miniprogram-bluetoothprinter

  • 熱敏打印機編程 ESC/POS 指令


微信小程序連接藍牙打印機示例的評論 (共 條)

分享到微博請遵守國家法律
韶山市| 金阳县| 湖州市| 宝丰县| 鹰潭市| 涪陵区| 龙山县| 丰县| 七台河市| 繁昌县| 金坛市| 保德县| 密山市| 荔波县| 潮安县| 蒲城县| 开化县| 曲水县| 邹城市| 山东省| 富宁县| 余干县| 诏安县| 公主岭市| 泽州县| 怀化市| 栾城县| 玉门市| 荆州市| 黄龙县| 长乐市| 孝感市| 谢通门县| 辽源市| 宁津县| 上思县| 尖扎县| 洮南市| 永春县| 临夏县| 正定县|