更新记录
1.0.0(2026-11-05) 下载此版本
1.0.0
- 首个版本,功能可用
平台兼容性
pk-bt-print 蓝牙打印指令套件
蓝牙打印:ESC/POS、TSC、CPCL 三套指令编码(文本 / 对齐 / 加粗 / 二维码 / 条码 / 位图抖动 / 切纸),全部字节级可测;BLE + SPP 双通道、MTU 分块写入、连接状态机。
双层架构:JS 指令编码层(可逐字节比对真实打印样张)+ 原生薄壳(Kotlin / Swift,只做 BLE/SPP 通道)。竞品痛点「包太大无法云打包」「商米 V2S 一调就崩」「一直初始化中」全部根治。
5 分钟接入
import bt from '@/uni_modules/pk-bt-print/js_sdk/index.js'
import { createBtChannel } from '@/uni_modules/pk-bt-print/utssdk/index.uts'
bt.setChannel(createBtChannel()) // 接原生通道(自定义基座已集成 PKBtPrint)
bt.scan(); // 开始扫描
bt.on('device', (d) => console.log(d.name, d.address))
bt.connect({ address: 'AA:BB:CC' }) // 连接
bt.on('state', (e) => console.log(e.state)) // scanning→connecting→ready
const bytes = new bt.EscPosBuilder()
.init().align('center').bold(true).text('小票标题')
.feed(1).text('商品A ¥1.00')
.qrcode('https://plugkit.cn') // 默认 legacy 指令,兼容性最好
.cut().build()
bt.print(bytes) // MTU 自动分块写入
bt.disconnect()
指令构造器
| 构造器 | 用途 |
|---|---|
EscPosBuilder |
ESC/POS 小票(热敏) |
TscBuilder |
TSC 标签(不干胶) |
CpclBuilder |
CPCL 子集(Zebra 系) |
ESC/POS 关键方法:init / align('left'|'center'|'right') / bold / size(w,h) / codePage(n) / text(str,{newline}) / qrcode(data,{legacy,ecc,size}) / barcode(data) / image(bits,w,h) / feed / cut / partialCut。
中文编码
ESC/POS 中文依赖打印机字库(通常 GBK)。构造器把「文本→字节」抽象为可注入的 setCharsetEncoder(fn):
const gbk = (s) => gbkEncode(s) // 由 UTS/原生层提供(Kotlin Charset.forName("GBK"))
new bt.EscPosBuilder().setCharsetEncoder(gbk).text('中文小票').build()
未注入且含非 ASCII 字符会明确抛 E-PRN-02(而不是乱码或崩溃)。
位图抖动
ditherBayer(gray,w,h)(有序抖动,确定性强,适合热敏)与 ditherFloyd(gray,w,h)(误差扩散,更平滑)。输出 1-bit 黑点,image() / bitmap() 自动打包为打印字节流。
连接状态机
| 状态 | 说明 |
|---|---|
| idle | 未开始 |
| scanning | 扫描中 |
| connecting | 连接中 |
| ready | 已就绪,可打印 |
| closed | 已关闭 |
| error | 错误 |
每步都有 state 事件,不再「一直初始化中」。E-PRN-04 用于「设备不支持该指令集」等能力缺失。
错误码
| 码 | 含义 |
|---|---|
| E-PRN-01 | 参数非法 |
| E-PRN-02 | 非 ASCII 文本却未注入 charsetEncoder |
| E-PRN-03 | 数据超过指令上限 |
| E-PRN-04 | 设备不支持该指令集 / 能力 |
| E-PRN-05 | 连接失败 |
| E-PRN-06 | 写入失败(含 MTU 分块失败) |
| E-PRN-07 | 通道未就绪 |
| E-PRN-08 | 扫描失败 |
体积说明
不内置任何第三方 so / SDK,纯 Kotlin / Swift 实现,UTF-8 二维码无需字库,中文按需注入 GBK,云打包不受影响。
真机验收清单(需你配合)
- [ ] 商米 V2S / 佳博 / 精臣 各机型:连接后
ready事件触发,不再「初始化中」 - [ ] 出纸样张与
EscPosBuilder字节序列一致(可逐项比对) - [ ] 大票(>MTU)分块写入后完整出纸,无截断
- [ ] TSC 标签尺寸 / 间距 / 浓度 与预期一致

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 3
赞赏 0
下载 12744412
赞赏 1959
赞赏
京公网安备:11010802035340号