更新记录

1.0.1(2024-10-30)

部分函数改为Promise返回,同步方法有时候卡住页面。

1.0.0(2024-05-23)

汉印蓝牙打印


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.8,Android:5.0,iOS:不支持,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

Li-HYPrinter

安卓对接汉印SDK,实现大部分功能。

示例项目中有html生成base64的代码,操作简单,比使用打印机api画表快多了,兼容性也好,可以无缝切换打印机,所以没有对接这部分接口,包括打印二维码那些,直接生成图片比啥都强。


建议搭配下列组件使用
App打印页面组件
精臣官方对接组件

1 插件处理过的接口

处理base64图像

  • 描述
    把base64转换成bitmap,再根据标签大小进行缩放,防止超出。
    由于官方SDK打印图像传base64有点不友好,传bitmap的话,处理起来又很麻烦,所以加了一个接口处理base64转换成原生bitmap。

    printImage(base64 : string, maxWidth : number, maxHeight : number) : number
  • 参数

    参数 描述
    base64 图像base64
    maxWidth 标签宽度
    maxHeight 标签高度
  • 返回 同printBitmapCPCL

  • 例子

    //设置为标签纸
    HYPrinter.papertype_CPCL(1);
    //设置标签高度
    HYPrinter.printAreaSize("0", "200", "200", "500", "1");
    HYPrinter.printImage(base64, width, height);
    HYPrinter.Form();
    HYPrinter.Print();

以下是官方SDK开发文档中插件实现了的接口

2 SDK 连接方法

2.1 蓝牙连接接口

  • 描述

    portOpenBT(portSetting : string) : number 
  • 参数

    参数 描述
    portSetting 蓝牙地址(大写)
  • 返回

    描述
    0 连接成功
    -1 连接超时
    -2 蓝牙地址格式错误
    -3 打印机与SDK不匹配(握手不通过)

2.2 WIFI连接接口

  • 描述

    portOpenWIFI(printIP : string) : number
  • 参数

    参数 描述
    printIP IP地址
  • 返回

    描述
    0 连接成功
    -1 连接超时
    -2 IP地址格式错误
    -3 打印机与SDK不匹配(握手不通过)

2.3 USB连接接口

  • 描述

    portOpenUSB(usbdevice : UsbDevice) : number
  • 参数

    参数 描述
    usbdevice 需要连接的USB设备对象
  • 返回

    描述
    0 连接成功
    -1 连接超时
    -2 参数错误
    -3 打印机与SDK不匹配(握手不通过)

2.4 断开连接接口

  • 描述

    portClose() : boolean
  • 参数 无

  • 返回

    描述
    true 断开成功
    false 连接超时

3 打印方法

3.1 设置标签高度

  • 描述

    printAreaSize(offset : string, Horizontal : string, Vertical : string, height : string, qty : string) : number
  • 参数

    参数 描述
    offset 上下文对象
    Horizontal 打印机水平方向dpi(根据实际打印机dpi设置)
    Vertical 打印机垂直方向dpi(根据实际打印机dpi设置)
    height 标签高度 (单位:dot)200dpi 8 dot = 1mm,300dpi 12 dot = 1mm
    qty 打印次数
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()//打印标签起定位作用(连续纸不可用)
    PrinterHelper.Print()

3.2 打印

  • 描述

    int Print()
  • 参数 无

  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()//打印标签起定位作用(连续纸不可用)
    PrinterHelper.Print()

3.3 设置编码

  • 描述

    int Encoding(String code)
  • 参数

    参数 描述
    code 字符编码,
    gb2312: 中文 ,
    ISO8859-1 :西欧语
    ISO8859-2 :拉丁语(2)
    ISO8859-3 :拉丁语(3)
    ISO8859-4 :波罗的语
    ISO8859-5 :西里尔语
    ISO8859-6 :阿拉伯语
    ISO8859-8 :希伯来语
    ISO8859-9 :土耳其语
    ISO8859-15 :拉丁语(9)
    iso8859-11 :希腊语(windows)
    iso8859-7:希腊语(ISO)
    windows-874: 泰语
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Encoding(gb2312)
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","中文")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.4 标签定位

  • 描述 在Print()之前调用,只在标签模式下起作用

    int Form()
  • 参数 无

  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()//打印标签定位作用(连续纸不可用)
    PrinterHelper.Print()

3.5 注释

  • 描述

    int Note(String note)
  • 参数

    参数 描述
    note 注释内容
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Note("注释:")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.6 终止指令

  • 描述

    int Abort()
  • 参数 无

  • 返回

    描述
    大于0 发送成功
    -1 发送失败

3.7 文本打印

  • 描述

    PrintTextCPCL用于中文固件。

    PrintCodepageTextCPCL用于英文固件。

    Text两种固件都能用。

    printTextPro选择字库打印文本。

    int Text(String command,String font,String size ,String x,String y,String data)
  • 参数

    参数 描述
    command 文字的方向
    PrinterHelper.TEXT:水平。
    PrinterHelper.TEXT90:逆时针旋转90度。
    PrinterHelper.TEXT180:逆时针旋转180度。
    PrinterHelper.TEXT270:逆时针旋转270度。
    font 字体点阵大小:(单位:dot)
    注意:英文固件只支持(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 横坐标(单位 dot)
    y 纵坐标(单位 dot)
    data 文本数据
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","500","1")
    PrinterHelper.SetBold("1")//对下面的字体进行加粗(如不需要加粗不用添加)
    PrinterHelper.SetMag("2","2")//对下面的字体进行放大(如不需要不用添加)
    PrinterHelper.Text(PrinterHelper.TEXT,"7","0","10","10","TEXT")
    PrinterHelper.SetMag("1","1")//关闭放大
    PrinterHelper.SetBold("0")//关闭加粗
    PrinterHelper.Form()
    PrinterHelper.Print()

  • int PrintTextCPCL(String command,int font ,String x,String y,String data,int n,boolean    Iscenter,int width)
  • 参数

    参数 描述
    command 文字的方向
    PrinterHelper.TEXT:水平。
    PrinterHelper.TEXT270:垂直。
    font 字体点阵大小:(单位:dot)
    1:打印繁体字(24x24或者12x24,视中英文而定。)
    16:16x16或8x16,视中英文而定。
    24:24x24或12x24,视中英文而定。
    32:32x32或16x32,由ID3字体宽高各放大2倍。
    x 横坐标(单位 dot)
    y 纵坐标(单位 dot)
    data 文本数据
    n 字体的特效:
    N&1==1:加粗
    N&2==2:反白
    N&4==4:倍宽
    N&8==8:倍高
    Iscenter 居中
    true: 是
    false:否
    Width 要居中的范围。(Iscenter=true时才生效)单位:dot
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","500","1")
    //15 表示所有的特效都有
    PrinterHelper.PrintTextCPCL(PrinterHelper.TEXT,24,"10","10","TEXT",15,false,0)
    PrinterHelper.Form()
    PrinterHelper.Print()

  • int PrintCodepageTextCPCL(String command,int font ,String x,String y,String data,int n)
  • 参数

    参数 描述
    command 文字的方向
    PrinterHelper.TEXT:水平。
    PrinterHelper.TEXT270:垂直。
    font 字体点阵大小:(单位:dot)
    0:12x24。
    1:9x17。
    x 横坐标(单位 dot)
    y 纵坐标(单位 dot)
    data 文本数据
    n 字体的特效:
    N&1==1:加粗
    N&2==2:反白
    N&4==4:倍宽
    N&8==8:倍高
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","500","1")
    PrinterHelper.Country("ISO8859-1");//设置打印机编码
    PrinterHelper.LanguageEncode="iso8859-1";//设置SDK编码
    //15表示所有的特效都有
    PrinterHelper.PrintCodepageTextCPCL(PrinterHelper.TEXT,0,"10","10","TEXT",15)
    PrinterHelper.Form()
    PrinterHelper.Print()

3.8 计数

  • 描述

    int Count(String ml)
  • 参数

    参数 描述
    note 下次加减的数值
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","2")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","10086")
    PrinterHelper.Count("10")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","10000")
    PrinterHelper.Count("-10")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.9 对齐方式

  • 描述

    int Align(align:number)
  • 参数

    参数 描述
    align 1:居中。
    2:左对齐。
    3:右对齐。
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Align(PrinterHelper.CENTER)
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.10 SDK自带的打印图片base64

  int printBitmapBase64(String base64, int x, int y, int type, int compressType, int light)
  • 参数

    参数 描述
    base64 图片文件的base64字符串
    x 图片起始的x坐标。(单位:dot)
    y 图片起始的y坐标。(单位:dot)
    type 图片算法。
    0:二值算法;
    1:半色调算法
    2:聚合算法
    compressType 0:不压缩,
    1:整体压缩,(适合较小的图片)
    2:分包压缩,(适合较大的图片)
    light 亮度(范围 -100 到 100)
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
    -2 base64为空
    -3 图片数据超过打印机缓冲区
  • 例子

    PrinterHelper.printAreaSize("0","200","200","500","1")
    PrinterHelper.printBitmapBase64(base64,0,0,0,0,0)
    PrinterHelper.Form()
    PrinterHelper.Print()

3.11 打印浓度

  • 描述

    int Contrast(String contrast)
  • 参数

    参数 描述
    contrast 浓度类型,总的有四种:
    默认 = 0
    中 = 1
    黑暗 = 2
    非常深 = 3
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Contrast("1")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.12 打印速度

  • 描述

    int Speed(String speed)
  • 参数

    参数 描述
    speed 速度类型,总的有5种:从0到5越来越快;5是理想状态的最快速度。
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Speed("4")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.13 走纸

  • 描述

    int Prefeed( String prefeed)
  • 参数

    参数 描述
    prefeed 走纸的距离。(单位:dot)
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Prefeed("40")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.14 打印完走纸

  • 描述

    int Postfeed( String posfeed)
  • 参数

    参数 描述
    posfeed 走纸的距离。(单位:dot)
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()
    //注意:要在Form()之后
    PrinterHelper.Postfeed("40")
    PrinterHelper.Print()

3.15 延时打印

  • 描述

    int Wait( String wait)
  • 参数

    参数 描述
    wait 延时。单位是:1/8秒
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Wait("80")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.16 打印宽度

  • 描述

    int PageWidth(String pw)
  • 参数

    参数 描述
    pw 指定页面宽度。(单位:dot)
  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.PageWidth("100")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()
    PrinterHelper.Print()

3.17 获取打印机状态

  • 描述

    int getPrinterStatus()
  • 参数

  • 返回

    描述
    status == 0 打印机正常
    status == -1 发送失败
    status == 2 缺纸
    status == 4 开盖
  • 例子

    int status = PrinterHelper.getPrinterStatus()//该接口不是实时指令,打印机正在打印时,查询无效
    if (status == 0){
    //打印机正常
    }
    if(status == 2){
      //缺纸
    }
    if (status == 4){
        //开盖
    }

3.18 设置打印机纸张类型

  • 描述

    void papertype_CPCL(int page)
  • 参数

    参数 描述
    page 纸张类型
    0:连续纸
    1:标签纸
    2:后黑标
    3:前黑标
    4:三寸黑标
    5:2寸黑标
  • 返回 无

  • 例子

    //只支持 A300.
    PrinterHelper.papertype_CPCL(0)//设置成连续纸

3.19 自检页

  • 描述

    void setSelf()
  • 参数

  • 返回 无

  • 例子

    PrinterHelper.setSelf()//调用后打印机会打印一些打印机参数。

3.20 旋转180度打印

  • 描述

    int PoPrint()
  • 参数

  • 返回

    描述
    大于0 发送成功
    -1 发送失败
  • 例子

    PrinterHelper.printAreaSize("0","200","200","100","1")
    PrinterHelper.Text(PrinterHelper.TEXT,"4","0","0","0","TEXT")
    PrinterHelper.Form()//打印标签定位作用(连续纸不可用)
    PrinterHelper.PoPrint()

3.21 获取打印机SN

  • 描述

    String getPrintSN()
  • 参数 无

  • 返回

    描述
    sn 打印机SN
  • 例子

    PrinterHelper.getPrintSN();

隐私、权限声明

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

蓝牙

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

插件不采集任何数据

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

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