更新记录
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画表快多了,兼容性也好,可以无缝切换打印机,所以没有对接这部分接口,包括打印二维码那些,直接生成图片比啥都强。
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();