更新记录
1.0.0(2025-10-08)
平台兼容性
uni-app(4.75)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
- |
- |
- |
- |
- |
- |
5.0 |
12 |
- |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(4.75)
Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
- |
- |
5.0 |
12 |
- |
- |
欢迎使用 xl-hmA300 插件
🧾 汉印 HM-A300 系列蓝牙打印 SDK 接口说明文档
本文档详细介绍蓝牙打印 SDK 的 TypeScript 接口定义及说明,适用于调用蓝牙打印机进行标签打印、二维码、条码、图像及文本输出等操作。
📖 目录
🔌 蓝牙操作
1. 获取蓝牙状态
getBluetoothState(callback: BooleanBack): void
说明: 获取当前蓝牙开关状态。
参数名 |
类型 |
必填 |
说明 |
callback |
(ok: boolean) => void |
✅ |
蓝牙状态回调,true 表示开启,false 表示关闭 |
2. 扫描蓝牙
scanBlue(callback: BlueDeviceBack): void
扫描附近的蓝牙设备。
参数名 |
类型 |
必填 |
说明 |
callback |
(device: HBlueDevice) => void |
✅ |
每发现一个蓝牙设备都会回调一次 |
HBlueDevice 类型说明:
字段 |
类型 |
必填 |
说明 |
deviceId |
string |
✅ |
蓝牙设备唯一标识(Android: MAC 地址 / iOS: UUID) |
name |
string |
✅ |
蓝牙设备名称 |
paired |
boolean |
❌ |
是否已配对,仅 Android 有效 |
3. 停止扫描蓝牙
stopScanBlue(): void
停止蓝牙扫描,无参数。
4. 连接蓝牙
connectBlue(deviceId: string, callback: NumberBack): void
连接指定蓝牙打印机。
参数名 |
类型 |
必填 |
说明 |
deviceId |
string |
✅ |
蓝牙设备 ID |
callback |
(result: number) => void |
✅ |
连接结果回调 |
返回值:
数值 |
含义 |
0 |
连接成功 |
-1 |
连接超时 |
-2 |
蓝牙地址格式错误 |
-3 |
打印机与 SDK 不匹配(握手失败) |
5. 断开连接
disconnect(): boolean
说明: 断开当前蓝牙连接。
返回值:
6. 获取打印机序列号
getSN(callback: StringBack): void
参数名 |
类型 |
必填 |
说明 |
callback |
(result: string) => void |
✅ |
返回打印机 SN 编号 |
🧾 打印机设置
7. 打印机自检
selfTest(): void
执行打印机自检页,无参数。
8. 设置打印区域高度
printAreaSize(p: AreaParam): void
参数名 |
类型 |
必填 |
说明 |
height |
number |
✅ |
标签最大高度(点) |
qty |
number |
✅ |
打印的标签数量(最大值 1024) |
offset |
string |
❌ |
整体横向偏移,默认 0 |
9. 设置标签宽度
pageWidth(width: number): void
参数名 |
类型 |
必填 |
说明 |
width |
number |
✅ |
标签宽度(单位:点) |
10. 标签定位
form(): void
说明: 在调用 print()
前使用,仅在标签模式下有效。
11. 执行打印
print(): void
说明: 执行打印缓存区的内容。
12. 设置对齐方式
setAlign(p: AlignParam): void
参数名 |
类型 |
必填 |
说明 |
p |
"LEFT" | "CENTER" | "RIGHT" |
✅ |
对齐方式 |
13. 设置打印浓度
setContrast(p: number): void
参数名 |
类型 |
必填 |
说明 |
p |
number |
✅ |
打印浓度:0=默认,1=中,2=深,3=非常深 |
14. 设置打印速度
setSpeed(p: number): void
参数名 |
类型 |
必填 |
说明 |
p |
number |
✅ |
打印速度 0~5,数值越大越快 |
15. 设置字体放大倍数
setMag(p: MagParam): void
字段 |
类型 |
必填 |
说明 |
width |
number |
✅ |
字体宽度放大倍数(1~16) |
height |
number |
✅ |
字体高度放大倍数(1~16) |
16. 设置字体加粗
setBold(p: number): void
参数名 |
类型 |
必填 |
说明 |
p |
number |
✅ |
加粗系数 0~5,0 取消加粗 |
🖨 打印内容
17. 打印文本
text(p: TextParam): void
字段 |
类型 |
必填 |
说明 |
x |
number |
✅ |
起始横坐标(点) |
y |
number |
✅ |
起始纵坐标(点) |
font |
string |
✅ |
字体名称 |
content |
string |
✅ |
打印内容 |
rotation |
'0' |
'90' |
'180' |
18. 打印图片
image(p: ImageParam): void
字段 |
类型 |
必填 |
说明 |
x |
number |
✅ |
起始横坐标 |
y |
number |
✅ |
起始纵坐标 |
base64 |
string |
✅ |
图片 Base64 数据 |
algorithm |
'Threshold' |'DiffusionDithering' | 'AggregateDithering' |
❌ |
图片算法. 默认二值算法(Threshold) |
compressType |
number |
❌ |
压缩类型 0=不压缩 1=整体 2=分包 |
19. 打印条码
barcode(p: BarcodeParam): void
字段 |
类型 |
必填 |
说明 |
x |
number |
✅ |
起始横坐标 |
y |
number |
✅ |
起始纵坐标 |
width |
number |
✅ |
窄条宽度 |
height |
number |
✅ |
条码高度 |
content |
string |
✅ |
条码内容 |
ratio |
string |
✅ |
宽条窄条比例 |
vertical |
boolean |
❌ |
是否纵向打印 |
type |
BarcodeType |
❌ |
条码类型(默认 128) |
undertext |
boolean |
❌ |
是否显示下方文字 |
number |
string |
❌ |
字体类型(仅 undertext=true 有效) |
size |
string |
❌ |
字体大小 |
offset |
string |
❌ |
条码与文字距离 |
20. 打印二维码
qrCode(p: QrcodeParam): void
字段 |
类型 |
必填 |
说明 |
x |
number |
✅ |
起始横坐标 |
y |
number |
✅ |
起始纵坐标 |
content |
string |
✅ |
二维码内容 |
vertical |
boolean |
❌ |
是否纵向打印 |
M |
string |
❌ |
QR 类型(1=普通 2=扩展) |
U |
string |
❌ |
模块单位大小(1~32,默认6) |
21. 打印矩形/直线/反白框
box(p: BoxParam): void
line(p: BoxParam): void
inverseLine(p: BoxParam): void
字段 |
类型 |
必填 |
说明 |
x |
number |
✅ |
起点 X |
y |
number |
✅ |
起点 Y |
xend |
number |
✅ |
终点 X |
yend |
number |
✅ |
终点 Y |
thickness |
number |
✅ |
线条宽度 |
22.使用示例
connectBlue("XX:XX:XX:XX:XX:XX", (result) => {
if (result === 0) {
// 确保连接成功再进行后续操作
} else {
return;
}
});
hPrinter.printAreaSize({
height: 60 * 8,
qty: 1
});
hPrinter.pageWidth(60 * 8)
hPrinter.text({
x: 10,
y: 10,
font: '16',
content: '小鸡炖蘑菇'
})
hPrinter.barcode({
x: 150,
y: 30,
content: 'ABCDEFG',
type: '128',
width: 1,
ratio: '1',
height: 50,
});
hPrinter.qrCode({
x: 10,
y: 50,
M: '2',
U: '6',
content: '123456'
})
hPrinter.image({
x: 150,
y: 120,
base64: 'data:image/png;base64,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'
})
// hPrinter.form() // 标签纸需要加
hPrinter.print()