更新记录

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:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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.1 初始化打印机
  • init(callback);
  • 参数 参数 类型 默认值 是否必填 说明
    callback function 回调函数
  • 示列
      sunmi.init((res)=>{
          sunmi.selfCheck(); 
     })
1.2 自检
  • 将会打印出打印机的基本信息。
  • selfCheck(callback);
  • 参数 参数 类型 默认值 是否必填 说明
    callback function 回调函数
  • 示列
      sunmi.selfCheck()
1.3 获取打印机的状态
  • void getPrinterState(callback);
    • 参数 参数 类型 默认值 是否必填 说明
      callback function 回调函数
    • callback object 字段说明: 字段 类型 说明
      code int 错误码
      msg String 原因说明
      data Object {state:打印机状态码}
    • 示列
      sunmi.getPrinterState((res)=>{
        res = {code:10000,msg:"",data:{state:打印机状态码}}
      })
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 打印机离线

隐私、权限声明

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

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

插件不采集任何数据

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

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问