更新记录

1.0.4(2022-03-09)

1.新增设置打印机编码;
2.新增设置 SDK 编码;
3.发送数据函数;
4.读取数据函数;

1.0.3(2021-10-11)

1.接口代码优化; 2.新增多个功能; 设置打印完成时状态开关 打印后走纸
设置蜂鸣器鸣叫时间 获取打印完成时状态 获取打印完成时状态 打印机回退 具体看接口文档 3.支持到最低手机16版本 4.文档说明重写

1.0.2(2020-10-27)

修改低版本兼容

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.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原生插件配置”->”云端插件“列表中删除该插件重新选择


汉印便携式打印机(HM-A300)

1.蓝牙连接打印机
参数:mac 蓝牙地址
返回: 0:连接成功,-1:连接异常,-2:蓝牙地址错误, -3:打印机与 SDK 不匹配(握手指令错误)
HanyinPlugin.PortOpenBT({mac:""},res=>{});
2.断开函数
参数: 无
返回: 0:成功,-1:失败。
HanyinPlugin.PortClose(res => {});
3.检测蓝牙是否连接
参数: 无
返回: true:连接, false:断开
HanyinPlugin.IsOpened(res => {});
4.页标签开始指令
参数:
    {
        offset:此值使所有字段将水平偏移指定的单位数量
        Horizontal:水平方向的 dpi。(根据打印机的 dpi 设置,200dpi 打印机:8px=1mm) 
        Vertical:垂直方向的 dpi。(同上)
        Height:整个标签的高度。(单位:px)
        Qty:打印的次数。
    }
返回: 大于0:正常,否则异常
HanyinPlugin.printAreaSize(params, res => {});
5.页标签结束指令
参数: 无
返回: 大于0:正常,否则异常
注意: 行模式不能用
HanyinPlugin.Print(res => {});
6.编码指令 如: GB18030
参数: { type:"GB18030" }
返回: 大于0:正常,否则异常
注意: 行模式不能用
HanyinPlugin.Encoding(params, res => {})
7.走纸到下一张标签
参数: 无
返回: 大于0:正常,否则异常
注意:(必须跟 PRINT 在一起才有效,指令只对标签有效)
HanyinPlugin.Form(res => {});
8.注释
参数: { note: "" }
返回: 大于0:正常,否则异常
HanyinPlugin.Note(params, res => {});
9.终止指令
参数: 无
返回: 大于0:正常,否则异常
HanyinPlugin.Abort(res => {});
10.计数
参数: { ml:"" }
返回: 大于0:正常,否则异常
HanyinPlugin.Count(res => {});
11.设置字符宽高放大倍数
参数: { width: "", height: "" }
返回: 大于0:正常,否则异常
注意: 使用后记得关闭【 SetMag(“1”,”1”)//关闭放大 】
HanyinPlugin.SetMag(params, res => {});
12.文本打印 -- 用于中文固件
N的低4位 3 2 1 0
加粗 - - - 1
反白 - - 1 -
倍宽 - 1 - -
倍高 1
参数: 
    { 
        command: 0, // 0: 水平 1: 垂直 
        font: "", 
                1:  打印繁体字(24x24 或者 12x24,视中英文而定。) 16:16x16 或 8x16,视中英文而定。
                24: 24x24 或 12x24,视中英文而定。
                32: 32x32 或 16x32,由 ID3 字体宽高各放大 2 倍
        x: "", 起始点的横坐标
        y: "", 起始点的纵坐标
        data: "", 文本数据
        N: "", 字体的特效
        Iscenter: "",
        width: ""
    }
返回: 大于0:正常,否则异常
注意: width:要居中的范围。(Iscenter=true 时才生效)单位:px。
HanyinPlugin.PrintTextCPCL(params, res => {})
13.用于英文固件

表格同上

参数:
    {
    command: 0, // 0: 水平 1: 垂直 
        font: "", 
                字体点阵大小
            0:12x24
                1:9x17
        x: "", 起始点的横坐标
        y: "", 起始点的纵坐标
        data: "", 文本数据
        N: "", 字体的特效
  }
返回: 大于0:正常,否则异常
HanyinPlugin.PrintCodepageTextCPCL(params, res => {})
14.两种固件都能用
参数:
    {
    command: 0, 
        0: 水平 
       90: 逆时针旋转90度
      180: 逆时针旋转180度
      270: 逆时针旋转270度
    font: "",
      注意:英文固件只支持(0 和 1)
        0:12x24。 1:12x24(中文模式下打印繁体),英文模式下字体变成(9x17)大小 2:8x16。
      3:20x20。
      4:32x32 或者 16x32,由 ID3 字体宽高各放大两倍。 7:24x24 或者 12x24,视中英文而定。
      8:24x24 或者 12x24,视中英文而定。
      20:16x16 或者 8x16,视中英文而定。
      24:24x24 或者 12x24,视中英文而定。
      55:16x16 或者 8x16,视中英文而定。
      其它默认 24x24 或者 12x24,视中英文而定。
    size: "", 字体大小。(该功能被屏蔽统一参数传 0)
    x: "", 起始点的横坐标
        y: "", 起始点的纵坐标
        data: "", 文本数据
  }
返回: 大于0:正常,否则异常
注意: size :字体大小。(该功能被屏蔽统一参数传 0)
HanyinPlugin.Text(params, res => {});
15.对齐方式
参数:
    {
    align: "LEFT"
      LEFT: 居左
        center: 居中
      right: 居右
  }
返回: 大于0:正常,否则异常
HanyinPlugin.Align(params, res => {});
16.条形码打印

宽条窄条的比例(ratio)

image-20211003150435750
参数:
    {
    command: 0, // 0: 水平 1: 垂直
     type: "", // 条码类型
        UPCA,UPCA2,UPCA5,UPCE,UPCE2,UPCE5,EAN13,EAN132,EAN135,EAN8,EAN82,EAN85,code39,code39C,F39,F39C, code93,I2OF5,I2OF5C,I2OF5G,code128,UCCEAN128,CODABAR,CODABAR16,MSI,MSI10,MSI1010,MSI1110, POSTNET,FIM
    width: "", // 窄条的单位宽度
    ratio: "", // 宽条窄条的比例
   height: "", // 条码高度
        y: "", // 条码的起始纵坐标
        x: "", // 条码的起始横坐标。(单位:px)  
undertext: "", // 条码下方的数据是否可见。ture:可见,false:不可见。 number:字体的类型。
     size: "", // 字体的大小。
   offset: "", // 条码与文字间的距离。
     data: "" // 条码数据。
  }
返回: 大于0:正常,否则异常
HanyinPlugin.Barcode(params, res => {});
17.二维码打印
参数:
    {
    command: 0, // 0: 水平 1: 垂直
      x: "", // 二维码的起始横坐标
      y: "", // 二维码的起始纵坐标
      m: "1", // 类型 1 和类型 2;类型 2 是增加了个别的符号
      u: "6", // 单位宽度/模块的单元高度, 范围是1到32默认为6
   data: "",  // 二维码的数据 
  }
返回: 大于0:正常,否则异常
HanyinPlugin.PrintQR(params, res => {});
18.打印 PDF417 码
参数:
    {
        command: 0, // 0: 水平 1: 垂直
      xd: "", // 最窄元素的单位宽度。范围是 1 到 32,默认为 2
      yd: "", // 最窄元素的单位高度。范围是 1 到 32,默认值是 6
       x: "", // 二维码的起始横坐标
       y: "", // 二维码的起始纵坐标
       c: "", // 使用的列数。数据列不包括启动/停止字符和左/右指标。范围为 1 到 30;默认值是3
       s: "", // 安全级别表示要检测到的错误的最大金额和/或校正。范围为0到8;默认值是1
    data: "", // PDF417 码的数据
    }
返回: 大于0:正常,否则异常
HanyinPlugin.PrintPDF417(params, res => {});
19.画矩形框
参数:
    {
        x0: "", // 左上角的 X 坐标
        y0: "", // 左上角的 Y 坐标
        x1: "", // 右下角的 X 坐标
        y1: "", // 右下角的 Y 坐标
 width: "", // 线条的单位宽度
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Box(params, res => {});
20.画直线
参数:
    {
        x0: "", // 左上角的 X 坐标
        y0: "", // 左上角的 Y 坐标
        x1: "", // 右下角的 X 坐标
        y1: "", // 右下角的 Y 坐标
 width: "", // 线条的单位宽度
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Line(params, res => {});
21.反白框
参数:
    {
        x0: "", // 左上角的 X 坐标
        y0: "", // 左上角的 Y 坐标
        x1: "", // 右下角的 X 坐标
        y1: "", // 右下角的 Y 坐标
 width: "", // 线条的单位宽度
    }
返回: 大于0:正常,否则异常
HanyinPlugin.InverseLine(params, res => {});
22.打印图片(bitmap)
参数:
    {
        x: "", // 图片起始的 x 坐标
        y: "", // 图片起始的 y 坐标
      img: "", // 图片的 Bitmap 的对象
     type: "", // 图片算法。0:二值算法;1:半色调算法
    light: "", // 亮度(默认 0)
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Expanded(params, res => {});
23.打印图片(url)
参数:
    {
        x: "", // 图片起始的 x 坐标
        y: "", // 图片起始的 y 坐标
      img: "", // 图片的 Bitmap 的对象
    }
返回: 大于0:正常,否则异常
HanyinPlugin.ExpandedUrl(params, res => {});
24.设置打印浓度
参数:
    {
        contrast: "1"  // 浓度类型 默认 =0 中 =1 黑暗 =2 非常深 =3
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Contrast(params, res => {});
25.设置打印速度
参数:
  {
    speed: "1",  // 从 0 到 5 越来越快;5 是理想状态的最快速度
  }
返回: 大于0:正常,否则异常
HanyinPlugin.Speed(params, res => {});
26.设置字间距
参数:
    {
        setsp: "1", // 间距
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Speed(params, res => {});
27.走纸再打印
参数:
    {
        prefeed: "", // prefeed:走纸的距离
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Prefeed(params, res => {});
28.打印后走纸一定距离
参数:
    {
        postfeed: "", // 走纸的距离
    }
返回: 大于0:正常,否则异常
注意:要在 FORM 指令之后
HanyinPlugin.Postfeed(params, res => {});
29.设置蜂鸣器鸣叫时间
参数:
    {
        beep: "", // 蜂鸣声的持续时间
    }
返回: 大于0:正常,否则异常
注意: (1/8)秒为单位指定
HanyinPlugin.Beep(params, res => {});
30.下划线
参数:
    {
        ul: true, // 设置下划线 true:添加下划线,false:取消下划线
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Underline(params, res => {});
31.打印一页标签后延时
参数:
    {
        wait: "", // 延时的单位是:1/8 秒
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Wait(params, res => {});
32.打印宽度
参数:
    {
        pw: "",
    }
返回: 大于0:正常,否则异常
HanyinPlugin.PageWidth(params, res => {});
33.行模式下设置行间距 setlf间距
参数:
    {
        setlf: "", // 间距
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Setlf(params, res => {});
34.设置字体与字符大小及行间距
参数:
    {
        font: "", // 字体
        size: "", // 大小 
 spacing: ""  // 字体的高度。
    }
返回: 大于0:正常,否则异常
HanyinPlugin.Setlp(params, res => {});
35.字体加粗
参数:
    {
        bold: "", // 加粗系数
    }
返回: 大于0:正常,否则异常
HanyinPlugin.SetBold(params, res => {});
36.获取打印机状态
返回:
    0 打印机准备就绪
    1 打印机打印中
    2 打印机缺纸
    6 打印机开盖
  * 其他出错
HanyinPlugin.Getstatus(res => {});
37.文字自动换行
参数:
    {
        x: "", // 文字的起始的 x 坐标
        y: "", // 文字的起始的 y 坐标
        size: 3, // 字体
            3:20x20 或 10x20,视中英文而定。
            4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。 
            8:24x24 或 12x24,视中英文而定。
            55:16x16 或 8x16,视中英文而定
        isbole: true,  // 加粗   true: 加粗  false: 不加粗
        isdouble: true, // 放大两倍字体  true:放大 false:不放大
    str: ""   // 要打印的文本
    type: 1   // 1或2
    }
注意:该功能 type 有两个接口分别是 1 和 2。前者不能使用泰语。后者打印机 固件必须在 V1.01.40.01 以上且文本字节数不得超过 1024,超      过部分自动忽略(不支持 4 寸 机型);
返回: 大于0:正常,否则异常
HanyinPlugin.AutLine(params, res => {});
38.文字在文本框内居中显示
参数:
    {
        command: 0, // 0: 水平   1: 垂直
        x: "", // 文本框起始的 x 坐标
        y: "", // 文本框起始的 y 坐标
        width: "", // 文本框的宽度
        size: "",
            3:16x16 或 8x16,视中英文而定。
            4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。 
            8:24x24 或 12x24,视中英文而定。
            55:16x16 或 8x16,视中英文而定。
    str: "", // 要打印的文本
    }
返回: 大于0:正常,否则异常
HanyinPlugin.AutCenter(params, res => {});
39.设置打印机纸张类型
page 0 1 2 3 4 5
A300 连续纸 标签纸 后黑标 前黑标 三寸黑标 两寸黑标
T300 连续纸 三寸黑标 两寸黑标 后黑标 标签纸 前黑标
参数:
    {
    page: 0,
  }
返回: 大于0:正常,否则异常
HanyinPlugin.papertypeCPCL(params, res => {});
40.旋转 180 度打印
返回: 大于0:正常,否则异常
注意:它不能与 Print()同时使用
HanyinPlugin.PoPrint(res => {});
41.设置打印完成时状态开关
参数:
    {
        isopen: true, // true:开。 false:关
    }
注意:它需要跟 getEndStatus()配合使用,使用完记得关闭
HanyinPlugin.openEndStatic(res => {});
42.获取打印完成时状态
参数:
    {
    time: 10000,  // 获取状态超时时间(单位 秒)
  }
返回: 
    0:打印成功。
    1:打印失败(缺纸)。 
    2:打印失败(开盖)。 
   -1:获取状态超时  
    其他: 获取错误
注意: 它需要跟 openEndStatic(boolean isopen)配合使用(打印机固件版本必须 V1.01.27.01以上)
HanyinPlugin.getEndStatus(params, res => {});
43.打印机回退
参数:
    {
    feed: 1, // 回退距离。(单位/行,范围:1-255)
  }
返回: 大于0:正常,否则异常
HanyinPlugin.ReverseFeed(params, res => {});
44.水印
参数:
    {
            x: "", // 横坐标
            y: "", // 纵坐标
       size: 55, // 字体大小  55:16(px)。 24:24(px)。 56:32(px)。 其他:24(px)。
 background: "", // 背景黑度(0-255)
       data: "",  // 数据
    }
返回: 大于0:正常,否则异常
HanyinPlugin.PrintBackground(params, res => {});
45.获取打印机 SN
返回: 打印机 SN
HanyinPlugin.GetPrintSN(res => {});
46.获取文字自动换行打印的高度
参数:
    {
        y: "",  // 文字的起始的 y 坐标
        x: "",  // 文字的起始的 x 坐标
        width: "", // 一行打印的宽度
        size: 3,
      3:20x20 或 10x20,视中英文而定。
            4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。 
      8:24x24 或 12x24,视中英文而定。
         55:16x16 或 8x16,视中英文而定
        isbole: true,  // true:加粗。 false:不加粗。
        isdouble: true,  // true:放大。 false:不放大。
        str: ""  // 要打印的文本
    }
返回: 打印出的文字的总高度
HanyinPlugin.GetAutLineHeight(params, res => {});
46.设置打印机编码和设置 SDK 编码
* codepage:代码页。
     * ISO8859-1 :西欧语 对应的 HanyinPlugin.LanguageEncode=”iso8859-1”
     * ISO8859-2 :拉丁语(2) 对应的 HanyinPlugin.LanguageEncode=”iso8859-2”
     * ISO8859-3 :拉丁语(3) 对应的 HanyinPlugin.LanguageEncode=”iso8859-3”
     * ISO8859-4 :波罗的语  对应的 HanyinPlugin.LanguageEncode=”iso8859-4”
     * ISO8859-5 :西里尔语  对应的 HanyinPlugin.LanguageEncode=”iso8859-5”
     * ISO8859-6 :阿拉伯语  对应的 HanyinPlugin.LanguageEncode=”iso8859-6”
     * ISO8859-8 :希伯来语  对应的 HanyinPlugin.LanguageEncode=”iso8859-8”
     * ISO8859-9 :土耳其语  对应的 HanyinPlugin.LanguageEncode=”iso8859-9”
     * ISO8859-15 :拉丁语(9) 对应的 HanyinPlugin.LanguageEncode=”iso8859-15”
     * WPC1253 :希腊语(windows) 对应的 HanyinPlugin.LanguageEncode=”iso8859-11”
     * KU42:希腊语(ISO) 对应的 HanyinPlugin.LanguageEncode=”iso8859-7”
     * TIS18: 泰语 对应的 HanyinPlugin.LanguageEncode=”windows-874”
     * Khemr:高棉语 对应的 HanyinPlugin.LanguageEncode=”UnicodeBigUnmarked”
打印机编码
参数:
    {
    codepage:"ISO8859-1"
  }
返回: 大于 0:正常,否则异常
注意: 需要结合HanyinPlugin.LanguageEncode一起使用
HanyinPlugin.Country(params, res=>{})
设置 SDK 编码
参数:
    {
        LanguageEncode:"iso8859-1"
    }
返回: 无
注意: 需要结合HanyinPlugin.Country一起使用
HanyinPlugin.LanguageEncode(params, res=>{})
例子:
    HanyinPlugin.printAreaSize({**}); 
    HanyinPlugin.Country({codepage:"ISO8859-1"},res=>{});               
    HanyinPlugin.LanguageEncode({LanguageEncode:"iso8859-1"},res => {});
    HanyinPlugin.Print()
47.发数据函数
参数:
    {
    bData:"需要发给打印机的数据" //byte[]
  }
返回: 大于 0:正常,否则异常
HanyinPlugin.WriteData(params, res=>{})
48.读数据函数
参数:
    {
    second:1
  }
返回: 读取到数据
注意: 单位:秒
HanyinPlugin.ReadData(params, res=>{})

隐私、权限声明

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

<uses-permission android:name=\"android.permission.BLUETOOTH\"/> <uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>

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

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

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