更新记录
1.0.1(2022-03-11)
发布1.0.1版本 测试机型:L36/L361 Printer/L31 BT Print/L36 BT Print 思普瑞特蓝牙便携式打印机均可使用
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.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原生插件配置”->”云端插件“列表中删除该插件重新选择
思普瑞特便携式打印机(L36/L361 Printer/L31 BT Printer)
1.打印机实例化
参数:mac 蓝牙地址
SprtPlugin.getPrinterInstance({mac:""},res=>{});
2.连接打印机
参数: 无
返回: true 连接成功;false 连接失败
SprtPlugin.openConnection(res => {});
3.关闭与打印机的连接
参数: 无
返回: {msg:""}
SprtPlugin.closeConnection(res => {});
4.向打印机发送十六进制数据
参数:
{
bytes: bytes[] // srcDatabyte数组
}
返回:
> 0 成功发送到打印机的字节数
-1 未初始化打印
-2 srcData为空或者srcData里没有数据
-3 向打印机发送数据失败
SprtPlugin.sendBytesData(params, res => {});
5.读取打印机返回的数据
参数: 用于接收读到字节的数组
{
bytes: bytes[] // srcDatabyte数组
}
返回:
> 0 成功读到的字节数
-1 未初始化打印
-2 srcData为空或者srcData里没有数据
SprtPlugin.read(params, res => {});
6.设置要打印区域的页宽和页高
参数:
{
paperWidth:"80", // 设置纸张类型 58 | 80 | 100
pageWidth:100, // 页宽
pageHeight:100 // 页高
}
注意: 设置纸张类型 58, 80, 100 ==> 58mm, 80mm, 100mm 默认80mm
SprtPlugin.pageSetup(params, res => {})
7.打印直线
参数:
{
lineWidth:1, // 打印线条的宽度
startX:12, // 开始点X坐标
startY:12, // 开始点Y坐标
endX:30, // 结束点X坐标
startY:30, // 结束点Y坐标
isSolidLine:true // true 实线;false虚线
}
SprtPlugin.drawLine(params, res => {});
8.打印框体
参数:
{
lineWidth:1, // 打印线条的宽度
top_left_x:10, // 框体左上角点X坐标
top_left_y:20, // 框体左上角点Y坐标
bottom_right_x:30, // 框体右下角点X坐标
bottom_right_y:30 // 框体右下角点Y坐标
}
SprtPlugin.drawBorder(params, res => {});
9.打印文本
参数:
{
text_x:10, // 打印起始点X坐标
text_y:20, // 打印起始点Y坐标
text:"", // 要打印的文本内容
fontSize:16, // 支持16,24,32,48,64,72,96
bold:1, //1 加粗 0不加粗
reverse:1, //1 反白 0不反白
underline:1, // 1有下划线 0 无下划线
rotate:0 //旋转角度 支持90度, 180度, 270度, 默认不旋转
}
SprtPlugin.drawText(params, res => {});
10.区域中打印文字
参数:
{
area_start_x:10, // 矩形区域的左上角X点坐标
area_start_y:10, // 矩形区域的左上角Y点坐标
area_end_x:20, // 矩形区域的右下角X点坐标
area_end_y:20, // 矩形区域的右下角Y点坐标
xAlign:"start", // 水平位置,可以是center居中,end居右,默认start居左
yAlign:"start", // 竖直位置,可以是center居中,end居下,默认start居上
fontSize:16, // 支持16,24,32,48,64,72,96
bold:1, // 是否加粗 1 加粗 0不加粗
reverse:1, // 是否反白 1 反白 0不反白
underline:1, // 是否有下划线 1有下划线 0 无下划线
deleteline:1, // 是否有删除线 1有删除线 0无删除线
rotate:0 //旋转角度 支持90度, 180度, 270度, 默认不旋转
}
SprtPlugin.areaText(params, res => {});
11.打印一维条码
参数:
{
start_x:10, // 开始位置x坐标
start_y:10, // 开始位置y坐标
text:"", // 要打印的条码数据内容
type:"CODE128",// 一维条码类型,支持类型如下:默认CODE128,JAN3_EAN13,JAN8_EAN8,CODE93,JAN3_EAN13,UPC_A,ITF,UPC_E,QR
height:80, // 条码高度
rotate:0, // 旋转角度 支持90度, 180度, 270度, 默认不旋转
linewidth:1 // 条码窄条宽
}
SprtPlugin.drawBarCode(params, res => {});
12.区域内打印一维条码
参数:
{
area_start_x:10, // 矩形区域位置左上角x坐标
area_start_y:10, // 矩形区域位置左上角y坐标
area_end_x:100, // 矩形区域位置右下角x坐标
area_end_y:80, // 矩形区域位置右下角y坐标
xAlign:"start", // 水平位置,可以是center居中,end居右,默认start居左
yAlign:"start", // 竖直位置,可以是center居中,end居下,默认start居上
start_x:20, // 区域内条码起始位置X坐标
start_y:20, // 区域内条码起始位置Y坐标
text:"", // 要打印的条码数据内容
type:"CODE128",// 一维条码类型,支持类型如下:默认CODE128,JAN3_EAN13,JAN8_EAN8,CODE93,JAN3_EAN13,UPC_A,ITF,UPC_E,QR
height:80, // 条码高度
rotate:0, // 旋转角度 支持90度, 180度, 270度, 默认不旋转
linewidth:1 // 条码窄条宽
}
SprtPlugin.areaDrawBarCode(params, res => {})
13.打印二维码
参数:
{
start_x:20, // 二维码起始X位置
start_y:20, // 二维码起始Y坐标
text:"", // 二维条码的内容数据
rotate:0, // 旋转角度 支持90度, 180度, 270度, 默认不旋转
ver:6 // QrCode放大倍数(1-6)默认是6
lel:3 // 纠错等级,0纠错等级L;1纠错等级M,2纠错等级Q,3纠错等级H
}
SprtPlugin.drawQrCode(params, res => {})
14.打印位图
参数:
{
start_x:20, // 打印图片位置的X坐标
start_y:20, // 打印图片位置的Y坐标
bmp_size_x:20, // 位图宽度
bmp_size_y:20, // 位图高度
image:"base64图片" // 图片
}
SprtPlugin.drawGraphic(params, res => {});
15.区域内打印位图
参数:
{
area_start_x:20, //矩形区域的左上角X点坐标
area_start_y:20, //矩形区域的左上角Y点坐标
area_end_x:60, //矩形区域的右下角X点坐标
area_end_y:60, //矩形区域的右下角Y点坐标
xAlign:"start", //水平位置,可以是center居中,end居右,默认start居左
yAlign:"start", //竖直位置,可以是center居中,end居下,默认start居上
bmp_size_x:40, //位图宽度
bmp_size_y:40, //位图高度
image:"base64图片" //图片
}
返回: 大于0:正常,否则异常
SprtPlugin.areaDrawGraphic(params, res => {});
16.开启打印
参数:
{
rotate:0, // 旋转角度 支持90度, 180度, 270度, 默认不旋转
skip:1 // 0:打印结束后不定位,直接停止;1:打印结束后定位到标签分割线,如果无缝隙,最大走纸30cm后停止
}
SprtPlugin.print(params, res => {});
17.切纸
参数:
{
cutterType:65,
n:1
}
// 48直接全切
// 49直接半切
// 65进纸到(切纸位置+[n ×(纵向移动单位)])并且全切
// 66进纸到(切纸位置+[n×(纵向移动单位)])并且半切
方法描述: 切纸,可全切,半切
注意: 纵向移动单位为1点, n: 纵向移动点数,当cutterType为65有效
SprtPlugin.cutPaper(params, res => {});
18.控制蜂鸣器响
参数:
{
time:100
}
方法描述:控制蜂鸣器响 time 秒
参数说明:time 蜂鸣器响秒数
SprtPlugin.ringBuzzer(params, res => {});
19.获取打印机当前状态
参数:无
返回:
0 打印状态正常
-1 打印机通信异常
-2 缺纸
-3 纸将尽
-4 打印机开盖
其他 获取错误
SprtPlugin.getCurrentStatus(res => {});
20.打印机打印是否完成
参数:
{
timeout:1000
}
方法描述:判断打印机打印是否完成。(注意:该功能在 T7 等部分机型上不适用。要使用此功能请先联系售前技术确认打印机是否支持该功能。)
参数说明:timeout 此超时时间应长于预估的打印一单需要的时间(ms)
返回:
0 当前打印已经完成
-1 未知异常
-2 当前打印机正在打印中
-3 打印未完成,缺纸
-4 打印未完成,纸舱盖开盖
-5 打印未完成,与打印机通信失败
-6 数据发送失败,通信异常
-7 接收数据格式不正确
其他 获取错误
SprtPlugin.getPrintingStatus(params, res => {});
21.判断打印机是否缺纸
参数: 无
返回: true 缺纸;false不缺纸
SprtPlugin.isPaperOut(res => {});
22.判断打印机是否纸将尽
参数: 无
方法描述:判断打印机是否纸将尽,只有部分机型有纸将尽传感器,获取纸将尽状态前需要开启纸将尽使能功能
返回:true 纸将尽, false纸足够
SprtPlugin.isPaperWillOut(res => {});