更新记录
1.0.0(2023-12-12)
IPOS蓝牙打印机,打印文本、图片、换行、字体大小等
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
前言
IPOS蓝牙打印机,打印文本、图片、换行、字体大小等
支持定制,联系QQ252797991
功能
// 集成到项目时iposprinter做成全局单例使用
var iposprinter = uni.requireNativePlugin("wrs-iposprinter");
- 设置回调
// 设置回调
iposprinter.setCallback((resp) => {
this.showMsg(JSON.stringify(resp))
var action = resp.action
switch (action) {
case "android.bluetooth.adapter.action.STATE_CHANGED":
var value = resp.value
switch (value) {
// STATE_OFF
case 10:
this.showMsg("蓝牙已关闭")
break;
// STATE_TURNING_OFF
case 13:
this.showMsg("蓝牙正在关闭")
break;
// STATE_ON
case 12:
this.showMsg("蓝牙已开启")
iposprinter.loadBluetoothPrinterDevice()
break;
// STATE_TURNING_ON
case 11:
this.showMsg("蓝牙正在开启")
break;
}
break;
default:
break;
}
})
- 初始化SDK
iposprinter.initSDK()
- 加载蓝牙打印机
iposprinter.loadBluetoothPrinterDevice()
- 初始化打印机
iposprinter.initPrinter()
- 获取蓝牙打印机状态
iposprinter.getPrinterStatus((resp) => {
var str = "未知"
var status = resp.status
switch (status) {
// PRINTER_NORMAL
case 0:
str = "PRINTER_NORMAL"
break;
// PRINTER_PAPERLESS
case 1:
str = "PRINTER_PAPERLESS"
break;
// PRINTER_THP_HIGH_TEMPERATURE
case 2:
str = "PRINTER_THP_HIGH_TEMPERATURE"
break;
// PRINTER_MOTOR_HIGH_TEMPERATURE
case 3:
str = "PRINTER_MOTOR_HIGH_TEMPERATURE"
break;
// PRINTER_IS_BUSY
case 4:
str = "PRINTER_IS_BUSY"
break;
// PRINTER_ERROR_UNKNOWN
case 5:
str = "PRINTER_ERROR_UNKNOWN"
break;
default:
break;
}
this.showMsg("打印机状态:" + str)
})
- 打印
var data = []
// 初始化打印机
data.push({
opt: "init_printer"
})
// 选择中文字符
data.push({
opt: "selectChineseMode"
})
// 设置字体大小
data.push({
opt: "fontSizeSet",
value: 0x01
})
// 打印文本
data.push({
opt: "setText",
value: "您好"
})
// 打印并走纸160点行
data.push({
opt: "performPrint",
value: 160
})
var params = {}
params.data = data
iposprinter.printContent(params, (resp) => {
var code = resp.code
if (code == 0) {
// 打印指令发送成功
} else {
this.showMsg("打印失败:" + JSON.stringify(resp))
}
});
更多打印指令参考下面:
{
opt: "init_printer" // 初始化打印机,放到数组第一个位置
}
{
opt: "selectChineseMode" // 设置汉字模式
}
{
opt: "selectCharCodeSystem" ,// 编码系统选择
value: 0 // mode 0,48 :系统默认 1,49 :GBK
}
{
opt: "fontSizeSet", // 字体(大小)设置
value: 1 // 设置倍宽倍高
}
{
opt: "printLeftMargin", //设置打印左边距
value: 1 // 单位像素点 为8的整数倍
}
{
opt: "absolutePrintPosition", //设置绝对打印位置
value: 1 // 单位像素点 为8的整数倍
}
{
opt: "relativePrintPosition", //设置横向相对打印位置
value: 1 // 当前字体大小下ASCII字符个数
}
{
opt: "setLineHeight", //设置行高
value: 1 // 行高像素点
}
{
opt: "alignMode", //对齐模式
value: 1 //
}
{
opt: "nextLines", //换行
value: 1 // 换行数
}
{
opt: "underlineWithWidthOn", //下划线设置
value: 1 // 0, 1 , 2或者 48, 49, 50
}
{
opt: "printUnderlineModeEn", //打印下划线模式设置
value: true //
}
{
opt: "setText", //设置文本
value: "您好",
charsetName: "GBK"
}
{
opt: "customCmd", // 自定义指令
value: [0x01, 0x02]
}
{
opt: "performPrint", // 打印并走纸value点行, 一般放到数组最后一个位置
value: 160
}
{
opt: "performPrintFeedPaperLines", // 打印并走纸value行 字符行字符高度, 一般放到数组最后一个位置
value: 160
}
{
opt: "set_HT_position", // 水平方向右移n列
value: [8,12,18] // 单位字符宽度(包含右间距)
}
{
opt: "HTCmd" // 跳格
}
{
opt: "setHRIPosition", // 设置HRI字符的打印位置
value: 0
}
{
opt: "setBarcodeHeight", // 设置条码高度
value: 0 // 1-16 单位24个像素点
}
{
opt: "setBarcodeWidth", // 设置条码宽度
value: 0 // 1-16 单位24个像素点
}
{
opt: "barcodePrint", // 条码打印
}
{
opt: "barcodeData", // 设置条码宽度
value: "12121",
mode: 0
}
{
opt: "setQRsize", // 设置二维码大小
value: 1 // 1-16 单位 24像素点
}
{
opt: "setQRCorrectionLevel", // 设置二维码纠错等级
value: 1 //
}
{
opt: "cacheQRData", // 设置二维码纠错等级
value: "http://www.baidu.com",
charsetName: "GBK"
}
{
opt: "getBitmapPrintData", // 设置二维码纠错等级
value: "/xxx/xxx/aa.png",
width: 50, // 0-384
bmpMode: 1
}