更新记录
1.0.2(2021-08-11)
1.0.2 增加 单行多列文字的打印 printColumnsText 增加 单行满内容打印 printRowText
1.0.1(2021-08-10)
优化 二维码打印
1.0.0(2021-08-09)
本插件适⽤于商⽶⼿持机型(⼿持机 除V1),如V1s、V2、P2等.可使用插件提供的方法直接打印.
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 9.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原生插件配置”->”云端插件“列表中删除该插件重新选择
商米内置打印机使用说明
- 本插件适⽤于商⽶⼿持机型(⼿持机 除V1),如V1s、V2、P2等.可使用插件提供的方法直接打印.
目录
一、插件的使用 二、插件方法 三、平台兼容 四、错误码 五、打印机状态码
插件的使用
- 插件的引入方法
- const sunmi = uni.requireNativePlugin('Suagr-Sunmi');
插件方法
-
在使用前必须进行打印机的初始化成功后,才可以使用其他方法。
1.方法列表
方法名 描述 init 初始化打印机 selfCheck 设备自检 getPrinterState 获取打印机状态 lineWrap 走纸 setAlignment 设置文字对齐方式 setFontSize 设置字体 setBold 字体加粗 cancelBold 取消加粗 printText 打印文本 print2DCode 打印二维码 printBarCode 打印一维条码 printColumnsText 多列文本打印 printRowText 虚线打印 -
callback 返回JSON内容: 字段 类型 取值 code int 参考错误码 msg String 原因描述 data Object 附带的数据(默认无此字段)
1.1 初始化打印机
- init(callback);
-
参数 参数 类型 默认值 是否必填 说明 callback function 是 回调函数 - 示列
sunmi.init((res)=>{ sunmi.selfCheck(); })
1.2 自检
- 将会打印出打印机的基本信息。
- selfCheck(callback);
-
参数 参数 类型 默认值 是否必填 说明 callback function 否 回调函数 - 示列
sunmi.selfCheck()
1.3 获取打印机的状态
- void getPrinterState(callback);
1.4 走纸
- lineWrap(n, callback=null)
-
参数 参数 类型 默认值 是否必填 说明 n int 是 走纸行数 callback function 否 回调函数 - 示列
sunmi.lineWrap(3); // 将会打印3行的空白行。
- 示列
-
1.5 设置文字对齐方式
- setAlignment(alignt,callback=null);
- 全局⽅法,对之后执⾏的打印有影响,打印机初始化时取消相关设置.
- 有默认参数 【align】 的方法将不受影响。
-
参数 参数 类型 默认值 是否必填 说明 alignment int 是 对齐方式:0->居左 , 1->居中, 2->居右 callback function 否 回调函数 - 示列
sunmi.setAlignment(1) //打印内容将会在打印纸上居中对齐。
1.6 设置字体
- setFontSize(fontsize,callback=null);
- 全局⽅法,对之后打印有影响,初始化能取消设置,字体⼤⼩是超出标准国际指令的打印⽅式, 调整字体⼤⼩会影响字符宽度,每⾏字符数量也会随之改变,因此按等宽字体形成的排版可能会错乱
- 有默认参数 【fontSize】 的方法将不受影响。
-
参数 参数 类型 默认值 是否必填 说明 fontsize float 是 字体大小 callback function 否 回调函数 - 示列
sunmi.setFontSize(25) //打印内容的字体大小为 25。
1.7 字体加粗/取消加粗
- setBold(callback) 加粗字体
-
cancelBold(callback) 取消加粗字体
-
有默认参数 【bold】的方法 将不受影响。
-
参数 参数 类型 默认值 是否必填 说明 callback function 否 回调函数 -
示列
sunmi.setBold() //后续代码输出的文字将会以加粗字体打印。 sunmi.cancelBold() //取消加粗字体。
-
1.8 打印文字
-
printText(object,callback);
-
object字段说明 字段 类型 默认值 是否必填 说明 text String 是 需要打印的文本内容 bold bool false 否 加粗 align int 0 否 对齐方式:0->居左 , 1->居中, 2->居右 fontSize float 20 否 字体大小 skip bool true 否 文字不满一行强制输出 -
callback 回调函数(默认值:null)
-
示列
sunmi.printText({ text:"张三", bold:true, align:1, fontSize:30 });
-
1.9 二维码打印
- print2DCode(object,callback);
- 参数:
-
object 字段说明 字段 类型 默认值 是否必填 说明 text String 是 二维码内容 size int 8 否 二维码块大小:4~16 level int 3 否 纠错等级: 0->L(7%),1->M(15%),2->Q(25%),3->H(30%) align int 1 否 对齐方式:0->居左 , 1->居中, 2->居右 - callback 回调函数(默认值:null)
-
- 示列
sunmi.print2DCode({ text:"www.baidu.com", size:8, level:2, align:1 });
1.10 一维码打印
- printBarCode(object,callback);
- 参数
-
object 字段说明 字段 类型 默认值 是否必填 说明 text String 是 一维码内容 symbology int 8 否 条形码类型 height int 165 否 条码⾼度, 取值 1 - 255 width int 2 否 条码宽度, 取值 2 - 6 align int 1 否 条码对齐方式:0->居左 , 1->居中, 2->居右 textPosition int 2 否 ⽂字位置(0-3):,0->不打印⽂字,1->⽂字在条码上⽅,2->⽂字在条码下⽅,3->条码上下⽅均打印 - callback 回调函数(默认值:null)
- 示列
sunmi.printBarCode({ text:"www.baidu.com", });
symbology: 条码类型
- 0 -- UPC-A, 要求12位数字(最后一位校验位必须正确),但受限于打印机的宽度及条码宽度
- 1 -- UPC-E, 要求8位数字(最后一位校验位必须正确),但受限于打印机的宽度及条码宽度
- 2 -- JAN13(EAN13), 要求13位数字(最后一位校验位必须正确),但受限于打印机的宽度及条码宽度
- 3 -- JAN8(EAN8), 要求8位数字(最后一位校验位必须正确),但受限于打印机的宽度及条码宽度
- 4 -- CODE39, 数字英文及8个特殊符号且首尾为*号,但受限于打印机的宽度及条码宽度
- 5 -- ITF, 字符为数字且小于14位,但受限于打印机的宽度及条码宽度
- 6 -- CODABAR, 起始和终止必须为A-D,数据为0-9及6个特殊字符,长度任意但受限于打印机的宽度及条码宽度
- 7 -- CODE93, 字符任意,长度任意但受限于打印机的宽度及条码宽度
- 8 -- CODE128 字符任意,长度任意但受限于打印机的宽度及条码宽度
-
1.11 多列文本打印
- printColumnsText(object,callback);
- 参数
-
object 字段说明 字段 类型 默认值 是否必填 说明 textArr Array 是 一列列⽂本字符串数组 colsWidthArr Array 2 否 一列宽度权重即各列所占⽐ colsAlign Array 1 否 一列对⻬⽅式:0 居左, 1 居中, 2 居右 bold bool false 否 加粗 fontSize float 20 否 字体大小 - callback 回调函数(默认值:null)
- 示列
sunmi.printColumnsText({ textArr:["菜品","单价","数量","总价"], colsWidthArr:[2,1,1,1], colsAlign:[0,1,1,1], fontSize:25 });
备注:
- textArr、colsWidthArr、colsAlign 三个参数的数组⻓度应该⼀致。
- 如果 colsText[i]的宽度⼤于colsWidth[i], 则⽂本换⾏,。
-
1.12 单行内容打印
- printRowText(object);
- 参数
-
object 字段说明 字段 类型 默认值 是否必填 说明 rowText String 是 单行打印的内容.例如:'-','*' 等符号的打印 bold bool false 否 加粗 textNum int 32 否 单行打印内容的数量 fontSize float 24 否 字体大小 - 示列
sunmi.printRowText({ rowText:"-", //将打印一行“-”的内容。“-”的数量将会是 32 个,大小24 });
备注:
- 本方法,可以用于打印虚线、星线 等其他任何单行的内容。
- bold、textNum 和 fontSize 将影响内容的样式。造成单行变多行,请谨慎设置。
-
打印机状态值
状态 | 值 |
---|---|
⼯作正常 | 1 |
准备中 | 2 |
通讯异常 | 3 |
缺纸 | 4 |
过热 | 5 |
开盖 | 6 |
切⼑异常 | 7 |
切⼑恢复 | 8 |
未检测到⿊标 | 9 |
未检测到打印机 | 505 |
固件升级失败 | 507 |
平台兼容性
Android | IOS |
---|---|
√ | x |
错误码
错误码 | 说明 |
---|---|
10000 | 成功 |
11000 | 失败 |
10001 | 打印机链接成功 |
10002 | 打印机已连接 |
11001 | 打印机连接失败 |
11002 | 打印机离线 |