更新记录
1.0.3(2020-08-07) 下载此版本
更新示例工程。
1.0.2(2020-07-30) 下载此版本
初版。
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 10.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原生插件配置”->”云端插件“列表中删除该插件重新选择
基本使用方法
1. 在页面中引入:const printMgr = uni.requireNativePlugin('xfbao-PrinterManager')
2. 扫描设备:startBtDiscovery() / stopBtDiscovery()
3. 连接:portOpenBt() / portOpenWIFI()
4. 注册监听设备发现,连接和断开的回调:printMgr.registerCallback()
5. 打印接口:
- 使用图片绝对路径打印:printImage()
- 使用base64打印图片:saveBase64(), splitAndPrintImage()
- 打印pdf:saveBase64(), printPdf()
6. 状态接口:
- 连接是否成功:isOpened()
-
连接实时状态:isConnected()
//---------常用接口 start---------------------------------------------------------------\
/**
- 开启蓝牙扫描,只有汉印打印机HM系列的才会通过register的callback回调 */ startBtDiscovery()
/**
- 停止蓝牙扫描 */ stopBtDiscovery()
/**
- 注册回调,回调格式:{code,message,data}
- code: 1,发现设备;2,连接成功;3,连接断开。 */ public void register(callback)
/**
- 取消注册 */ public void unregister()
/**
- 蓝牙连接设备。
- @param mac 蓝牙地址。
- @return 0:连接成功,-1:连接异常,-2:蓝牙地址错误,-3:打印机与 SDK 不匹配(握手指令错误)。 */ portOpenBT(mac)
/**
- WiFi连接设备。
- @param printIP 打印机 IP 地址(查看自检页)。
- @return 0:连接成功,-1:连接异常,-2:地址格式错误,
- -3:打印机与 SDK 不匹配(握手指令错误)。 */ portOpenWIFI(printIP)
/**
- 断开函数。
- @return 等于0:连接成功,-1 连接失败。 */ portClose()
/**
- 蓝牙是否连接。
- 注意 :该接口只显示 PortOpen 和 PortClose 的结果,并不是监测实时的蓝牙状态(监测
- 蓝牙的实时连接状态需要监听系统蓝牙广播)。
- @return 等于true: 连接, false: 断开。 */ isOpened()
/**
- 蓝牙是否连接。
- @return 等于true: 连接, false: 断开。 */ isConnected()
/**
- 打印图片。
- @param imgPath 图片的绝对路径。
- @param options
- @param callback 回调函数,返回 res = code > 0 时正常,否则异常。 */ public void printImage(imgPath, options, callback)
/**
- 不能一次性传递过大的参数,因此base64与其他打印参数分开传递。 */ public void saveBase64(base64)
/**
- 从图片的base64按指定高度分割成多张图片后循环打印。
- @param imgOpt
- { // 以下所示值为默认值,都可以为空,imgOpt可以传null
- x: 0, // 图片起始的 x 坐标
- y: 0, // 图片起始的 y 坐标
- size: // "small", "mid", "large"(默认),
- isRotate: false, // 是否旋转
- algType: 1, // 1: 抖动,0:黑白,2:聚集
- light: 0, // -100 ~ 100
- offset: "0", // 水平偏移量
- horizontal: "300", // 水平方向的 dpi
- vertical: "300", // 垂直方向的 dpi
- qty: "1", // 打印次数
- }
- @param callback */ public void splitAndPrintImage(imgOpt, height, callback)
/**
- 打印pdf,须先调用saveBase64(base64Str)传入图片的base64字符串。 */ public void printPdf(imgOptions, callback)
//---------常用接口 end ---------------------------------------------------------------\
/**
- 页标签开始指令。
- @param offset:此值使所有字段将水平偏移指定的单位数量。
- @param horizontal:水平方向的 dpi。(根据打印机的 dpi 设置,200dpi 打印机:8px=1mm)。
- @param vertical:垂直方向的 dpi。(同上)
- @param height:整个标签的高度。(单位:px)
- @param qty :打印的次数。
- @return 大于0:正常,否则异常。 */ printAreaSize(offset, horizontal, vertical, height, qty)
/**
- 页标签结束指令。
- @return 大于0:正常,否则异常。 */ print()
/**
- 编码指令。
- @param code:编码。
- @return 大于 0:正常,否则异常。 */ encoding(code)
/**
- 走纸到下一张标签。
- @return 大于 0:正常,否则异常。 */ form()
/**
- 注释。
- @param note:注释的内容。
- @return 大于 0:正常,否则异常。 */ note(note)
/**
- 终止指令。
- @return 大于 0:正常,否则异常。 */ abort()
/**
- 文本打印。
- @param command:文字的方向,总的有两种: 'T':水平。
- 'T270':垂直。
- @param font :字体点阵大小(单位:px)
- 1:打印繁体字(24x24 或者 12x24,视中英文而定。)
- 16:16x16 或 8x16,视中英文而定。
- 24:24x24 或 12x24,视中英文而定。
- 32:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。
- @param x:起始点的横坐标。(单位:px)
- @param y:起始点的纵坐标。(单位:px)
- @param data:文本数据。
- @param n:字体的特效: N的低4位 3 2 1 0
- 加粗 - - - 1
- 反白 - - 1 -
- 倍宽 - 1 - -
- 倍高 1 - - -
- @param iscenter: 是否居中。
- True:是。
- False:否。
- @param width:要居中的范围。(Iscenter=true 时才生效)单位:px。
- @return 大于 0:正常,否则异常。 */ printTextCPCL(command, font, x, y, data, n, iscenter, width)
/**
- 文本打印。
- @param command:文字的方向,总的有四种: 'T':水平。
- 'T90':逆时针旋转 90 度。
- 'T180':逆时针旋转 180 度。
- 'T270':逆时针旋转 270 度。
- @param font:字体点阵大小:(单位:px) 注意:英文固件只支持(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,视中英文而定。
- @param size:字体大小。(该功能被屏蔽统一参数传 0)
- @param x:起始点的横坐标。(单位:px)
- @param y:起始点的纵坐标。(单位:px)
- @param data:文本数据。
- @return 大于 0:正常,否则异常。 */ text(command, font, size, x, y, data)
/**
- 文本打印。
- @param command:文字的方向,总的有两种: 'T':水平。
- 'T270':垂直。
- @param font:字体点阵大小(单位:px) 0:12x24。
- 1:9x17。
- @param x:起始点的横坐标。
- @param y:起始点的纵坐标。
- @param data:文本数据。
- @param n:字体的特效: N的低4位 3 2 1 0
- 加粗 - - - 1
- 反白 - - 1 -
- 倍宽 - 1 - -
- 倍高 1 - - -
- @return 大于 0:正常,否则异常。 */ printCodepageTextCPCL(command, font, x, y, data, n)
/**
- 计数。
- @param ml:下次加减的数值。
- @return 大于 0:正常,否则异常。 */ count(ml)
/**
- 设置字符宽高放大倍数。
- @param width:宽的放大倍数。
- @param height:高的放大倍数。
- @return 大于 0:正常,否则异常。 */ setMag(width, height)
/**
- 对齐方式。
- @param align:对齐方式总的有三种: 'CENTER':居中。
- 'LEFT':左对齐。
- 'RIGHT':右对齐。
- @return 大于 0:正常,否则异常。 */ align(align)
/**
- 条码。
- @param command:条码方向: BARCODE:水平方向
- VBARCODE:垂直方向
- @param type(String):条码类型: 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
- @param width:窄条的单位宽度。
- @param ratio:宽条窄条的比例。比例如下:0=1.5:1 20=2.0:1 26=2.6:1
- 1=2.0:1 21=2.1:1 27=2.7:1
- 2=2.5:1 22=2.2:1 28=2.8:1
- 3=3.0:1 23=2.3:1 29=2.9:1
- 4=3.5:1 24=2.4:1 30=3.0:1
- 25=2.5:1
- @param height:条码高度。
- @param x:条码的起始横坐标。(单位:px)
- @param y:条码的起始纵坐标。(单位:px)
- @param undertext:条码下方的数据是否可见。ture:可见,false:不可见。
- @param number:字体的类型。
- @param size:字体的大小。
- @param offset:条码与文字间的距离。
- @param data:条码数据。
- @return 大于 0:正常,否则异常。 */ barcode(command, type, width, ratio, height, x, y, undertext, number, size, offset, data)
/**
- 打印二维码。
- @param command:打印方向: BARCODE:水平方向。
- VBARCODE:垂直方向。
- @param x:二维码的起始横坐标。
- @param y:二维码的起始纵坐标。
- @param m:QR 的类型:类型 1 和类型 2;类型 2 是增加了个别的符号,提供了而外的功能。
- @param u:单位宽度/模块的单元高度。范围是 1 到 32 默认为 6。
- @param data:二维码的数据。
- @return 大于 0:正常,否则异常。 */ printQR(command, x, y, m, u, data)
/**
- 打印 PDF417 码。
- @param command:打印方向: BARCODE:水平方向。
- VBARCODE:垂直方向。
- @param x:二维码的起始横坐标。
- @param y:二维码的起始纵坐标。
- @param xD:最窄元素的单位宽度。范围是 1 到 32,默认为 2。
- @param yD:最窄元素的单位高度。范围是 1 到 32,默认值是 6。
- @param c :使用的列数。数据列不包括启动/停止字符和左/右指标。范围为 1 到 30;默认值是 3。
- @param s:安全级别表示要检测到的错误的最大金额和/或校正。范围为 0 到 8;默认值是 1。
- @param data:PDF417 码的数据。
- @return 大于 0:正常,否则异常。 */ printPDF417(command, x, y, xD, yD, c, s, data)
/**
- 画矩形框。
- @param x0:左上角的 X 坐标。(单位:px)
- @param y0:左上角的 Y 坐标。(单位:px)
- @param x1:右下角的 X 坐标。(单位:px)
- @param y1:右下角的 Y 坐标。(单位:px)
- @param width:线条的单位宽度。
- @return 大于 0:正常,否则异常。 */ box(x0, y0, x1, y1, width)
/**
- 画直线。
- @param x0:起始的 X 坐标。(单位:px)
- @param y0:起始的 Y 坐标。(单位:px)
- @param x1:结尾的 X 坐标。(单位:px)
- @param y1:结尾的 Y 坐标。(单位:px)
- @param width:线条的单位宽度。
- @return 大于 0:正常,否则异常。 */ line(x0, y0, x1, y1, width)
/**
- 反白框。
- @param x0:起始的 X 坐标。(单位:px)
- @param y0:起始的 Y 坐标。(单位:px)
- @param x1:结尾的 X 坐标。(单位:px)
- @param y1:结尾的 Y 坐标。(单位:px)
- @param width:反白框的宽度。
- @return 大于 0:正常,否则异常。 */ inverseLine(x0, y0, x1, y1, width)
/**
- 打印图片。
- @param x:图片起始的 x 坐标。(单位:px)
- @param y:图片起始的 y 坐标。(单位:px)
- @param url:图片的路径。
- @return 大于 0 正常;等于-1 图片的宽度或者高度超出打印机的范围。 */ expandedByUrl(x, y, url)
/**
- 打印图片。
- @param x:图片起始的 x 坐标。(单位:px)
- @param y:图片起始的 y 坐标。(单位:px)
- @param bmap:图片的 Bitmap 的对象。
- @param type:图片算法。0:二值算法;1:半色调算法。
- @param light:亮度(默认 0)。
- @return 大于 0 正常;等于-1 图片的宽度或者高度超出打印机的范围。 */ expandedByBmp(x, y, Bitmap bmap, type, light)
/**
- 打印浓度。
- @param contrast: 浓度类型,总的有四种:
- 默认 =0
- 中 =1
- 黑暗 =2
- 非常深 =3
- @return 大于 0:正常,否则异常。 */ contrast(contrast)
/**
- 打印速度。
- @param speed:速度类型,总的有 5 种:从 0 到 5 越来越快;5 是理想状态的最快速度。
- @return 大于 0:正常,否则异常。 */ speed(speed)
/**
- 设置字间距。
- @param setsp:间距。
- @return 大于 0:正常,否则异常。 */ setSp(setsp)
/**
- 走纸再打印。
- @param prefeed:走纸的距离。(单位:px)。
- @return 大于 0:正常,否则异常。 */ prefeed(prefeed)
/**
- 打印后走纸一定距离。
- @param posfeed:走纸的距离。(单位:px)
- @return 大于 0:正常,否则异常。 */ postfeed(posfeed)
/**
- 设置蜂鸣器鸣叫时间。
- @param beep:蜂鸣声的持续时间,(1/8)秒为单位指定。
- @return 大于 0:正常,否则异常。 */ beep(beep)
/**
- 下划线。
- @param uL:true:添加下划线,false:取消下划线。
- @return 大于 0:正常,否则异常。 */ underline(uL)
/**
- 打印一页标签后延时。
- @param wait:延时的单位是:1/8 秒。
- @return 大于 0:正常,否则异常。 */ wait(wait)
/**
- 打印宽度。
- @param pw:指定页面宽度。(单位:px)
- @return 大于 0:正常,否则异常。 */ pageWidth(pw)
/**
- 行模式下设置行间距。
- @param sF:间距。
- @return 大于 0:正常,否则异常。 */ setlf(sF)
/**
- 设置字体与字符大小及行间距。
- @param font:字体。
- @param size:大小。
- @param spacing:字体的高度。
- @return 大于 0:正常,否则异常。 */ setlp(font, size, spacing)
/**
- 发数据函数。
- @param bData:需要发给打印机的数据。
- @return 大于 0:正常,否则异常。 */ writeData(byte[] bData)
/**
- 读数据函数。
- @param second:读取时间(单位:秒)。
- @return 读取到数据。 */ public byte[] readData(second)
/**
- 字体加粗。
- @param bold: 加粗系数(范围:1-5)。
- @return 大于 0:正常,否则异常。 */ setBold(bold)
/**
- 获取打印机状态
- @return 0:打印机准备就绪。
- 1:打印机打印中。
- 2:打印机缺纸。
- 6:打印机开盖。
- 其他:出错。 */ getstatus()
/**
- 文字自动换行。
- @param x:文字的起始的 x 坐标。(单位:PX)
- @param y:文字的起始的 y 坐标。(单位:PX)
- @param width:一行打印的宽度。(单位:PX)
- @param size:字体。 3:20x20 或 10x20,视中英文而定。
- 4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。
- 8:24x24 或 12x24,视中英文而定。
- 55:16x16 或 8x16,视中英文而定。
- @param isbole:加粗。true:加粗。false:不加粗。
- @param isdouble :放大两倍字体。true:放大。false:不放大。
- @param str:要打印的文本。
- @return 大于 0:正常,否则异常。 */ autLine(x, y, width, size, isbole, isdouble, str)
/**
- 文字自动换行。
- @param x:文字的起始的 x 坐标。(单位:PX)
- @param y:文字的起始的 y 坐标。(单位:PX)
- @param width:一行打印的宽度。(单位:PX)
- @param size:字体。 3:20x20 或 10x20,视中英文而定。
- 4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。
- 8:24x24 或 12x24,视中英文而定。
- 55:16x16 或 8x16,视中英文而定。
- @param isbole:加粗。true:加粗。false:不加粗。
- @param isdouble :放大两倍字体。true:放大。false:不放大。
- @param str:要打印的文本。
- @return 大于 0:正常,否则异常。 */ autLine2(x, y, width, size, isbole, isdouble, str)
/**
- 文字在文本框内居中显示。
- @param command:文字的方向,总的有两种: T:水平。
- T270:垂直。
- @param x:文本框起始的 x 坐标。
- @param y:文本框起始的 y 坐标。
- @param width:文本框的宽度(单位:px)。
- @param size:字体。 3:16x16 或 8x16,视中英文而定。
- 4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。
- 8:24x24 或 12x24,视中英文而定。
- 55:16x16 或 8x16,视中英文而定。
- @param str:要打印的文本。
- @return 大于 0:正常,否则异常。 */ autCenter(command, x, y, width, size, str)
/**
- 设置打印机纸张类型。
- @param page 0 1 2 3 4 5
- A300 连续纸 标签纸 后黑标 前黑标 三寸黑标 两寸黑标
- T300 连续纸 三寸黑标 两寸黑标 后黑标 标签纸 前黑标 */ public void papertype_CPCL(page)
/**
- 设置3英寸打印机纸张类型。
- @param page 48:连续纸。
- 49:标签纸。
- 50:3寸左上黑标。
- 51:3寸左下黑标。
- 52:右上黑标。
- 53:右下黑标。
- 54:中上黑标。
- 55:中下黑标。
- 56:2寸左上黑标。
- 57:2寸左下黑标。 */ public void papertype_CPCL_TWO(page)
/**
- 设置4英寸打印机纸张类型。
- @param type:0:连续纸。
- 2:标签纸。
- 4:2寸黑标。
- 5:3寸黑标。
- 6:4寸黑标。
- @return 空 */ public void setPaperFourInch(type)
/**
- 自检页。 */ public void setSelf()
/**
- 旋转 180 度打印。
- @return 大于 0:正常,否则异常。 */ poPrint()
/**
- 获取打印完成时状态开关。
- @param isopen: true:开。
- false:关。 */ public void openEndStatic(isopen)
/**
- 获取打印完成时状态。
- @param time:获取状态超时时间(单位 秒)。
- @return 0:打印成功。
- 1:打印失败(缺纸)。
- 2:打印失败(开盖)。
- -1:获取状态超时。
- -2: 异常。 */ getEndStatus(time)
/**
- 打印机回退。
- @param feed:回退距离。(单位/行,范围:1-255)。
- @return 大于 0:正常,否则异常。 */ reverseFeed(feed)
/**
- 水印。
- @param x:横坐标(px)。
- @param y:纵坐标(px)。
- @param size:字体大小。 55:16(px)。
- 24:24(px)。
- 56:32(px)。
- 其他:24(px)。
- @param background:背景黑度(0-255)。
- @param data:数据。
- @return 大于 0:正常,否则异常。 */ printBackground(x, y, size, background, data)
/**
- 获取打印机 SN。
- @return 打印机 SN。 */ public getPrintSN()
/**
- 设置 Codepage。
- @param codepage:代码页。 ISO8859-1 : 西欧语
- ISO8859-2 :拉丁语(2)
- ISO8859-3 :拉丁语(3)
- ISO8859-4 :波罗的语
- ISO8859-5 :西里尔语
- ISO8859-6 :阿拉伯语
- ISO8859-8 :希伯来语
- ISO8859-9 :土耳其语
- ISO8859-15 :拉丁语(9)
- WPC1253 :希腊语(windows)
- KU42:希腊语(ISO)
- TIS18: 泰语
- Khemr:高棉语
- @return 大于 0:正常,否则异常。 */ country(codepage)
/**
- 设置 QRcode 版本。
- @param version:版本号(范围 0-40)
- QR 版本默认为 00,QR 版本为 00 时,QR 码效果同旧版,宽高会随数据量而改变。
- 设置了版本号对二维码的数据量有范围要求,超出范围二维码不打印。
- 具体查看结尾的表 1-1.
- @return 大于 0:正常。
- -1:断开连接。
- -2:参数错误。 */ setQRcodeVersion(version)
/**
- 读取 QRcode 版本。
- @return QRcode 版本。 */ public getQRcodeVersion()
/**
- 关闭高棉语输入指令。
- @return 大于 0:正常。
- -1:断开连接。
- -2:异常。 */ setKhemrEnd()
/**
- 获取文字自动换行打印的高度。
- @param x:文字的起始的 x 坐标。(单位:PX)
- @param y:文字的起始的 y 坐标。(单位:PX)
- @param width:一行打印的宽度。(单位:PX)
- @param size:字体。 3:20x20 或 10x20,视中英文而定。
- 4:32x32 或 16x32,由 ID3 字体宽高各放大 2 倍。
- 8:24x24 或 12x24,视中英文而定。
- 55:16x16 或 8x16,视中英文而定。
- @param isbole:加粗。true:加粗。false:不加粗。
- @param isdouble:放大两倍字体。true:放大。false:不放大。
- @param str:要打印的文本。
- @return 打印出的文字的总高度。(单位:PX) */ getAutLineHeight(x, y, width, size, isbole, isdouble, str)
/**
- 打印模式打印文本。
- @param str:文本内容(以\r\n 结尾)
- @return 大于 0 发送成功。 */ printData(str)
/**
- 行打印模式字体加粗。
- @param bold:加粗倍数。
- @return 大于 0 发送成功。 */ rowSetBold(bold)
/**
- 设置行模式的 X 坐标
- @param x:x 坐标。
- @return 大于 0 发送成功。 */ rowSetX(x)