更新记录

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 标签尺寸 / 间距 / 浓度 与预期一致

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。