基本使用方法
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---------------------------------------------------------------\
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
//---------常用接口 end ---------------------------------------------------------------\
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
/**
设置行模式的 X 坐标
@param x:x 坐标。
@return 大于 0 发送成功。 */ rowSetX(x)
行打印模式字体加粗。
@param bold:加粗倍数。
@return 大于 0 发送成功。 */ rowSetBold(bold)
打印模式打印文本。
@param str:文本内容(以\r\n 结尾)
@return 大于 0 发送成功。 */ printData(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 打印出的文字的总高度。(单位:PX) */ getAutLineHeight(x, y, width, size, isbole, isdouble, str)
关闭高棉语输入指令。
@return 大于 0:正常。
-1:断开连接。
-2:异常。 */ setKhemrEnd()
读取 QRcode 版本。
@return QRcode 版本。 */ public getQRcodeVersion()
设置 QRcode 版本。
@param version:版本号(范围 0-40)
QR 版本默认为 00,QR 版本为 00 时,QR 码效果同旧版,宽高会随数据量而改变。
设置了版本号对二维码的数据量有范围要求,超出范围二维码不打印。
具体查看结尾的表 1-1.
@return 大于 0:正常。
-1:断开连接。
-2:参数错误。 */ setQRcodeVersion(version)
设置 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)
获取打印机 SN。
@return 打印机 SN。 */ public getPrintSN()
水印。
@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)
打印机回退。
@param feed:回退距离。(单位/行,范围:1-255)。
@return 大于 0:正常,否则异常。 */ reverseFeed(feed)
获取打印完成时状态。
@param time:获取状态超时时间(单位 秒)。
@return 0:打印成功。
1:打印失败(缺纸)。
2:打印失败(开盖)。
-1:获取状态超时。
-2: 异常。 */ getEndStatus(time)
获取打印完成时状态开关。
@param isopen: true:开。
false:关。 */ public void openEndStatic(isopen)
旋转 180 度打印。
@return 大于 0:正常,否则异常。 */ poPrint()
自检页。 */ public void setSelf()
设置4英寸打印机纸张类型。
@param type:0:连续纸。
2:标签纸。
4:2寸黑标。
5:3寸黑标。
6:4寸黑标。
@return 空 */ public void setPaperFourInch(type)
设置3英寸打印机纸张类型。
@param page 48:连续纸。
49:标签纸。
50:3寸左上黑标。
51:3寸左下黑标。
52:右上黑标。
53:右下黑标。
54:中上黑标。
55:中下黑标。
56:2寸左上黑标。
57:2寸左下黑标。 */ public void papertype_CPCL_TWO(page)
设置打印机纸张类型。
@param page 0 1 2 3 4 5
A300 连续纸 标签纸 后黑标 前黑标 三寸黑标 两寸黑标
T300 连续纸 三寸黑标 两寸黑标 后黑标 标签纸 前黑标 */ public void papertype_CPCL(page)
文字在文本框内居中显示。
@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 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 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)
获取打印机状态
@return 0:打印机准备就绪。
1:打印机打印中。
2:打印机缺纸。
6:打印机开盖。
其他:出错。 */ getstatus()
字体加粗。
@param bold: 加粗系数(范围:1-5)。
@return 大于 0:正常,否则异常。 */ setBold(bold)
读数据函数。
@param second:读取时间(单位:秒)。
@return 读取到数据。 */ public byte[] readData(second)
发数据函数。
@param bData:需要发给打印机的数据。
@return 大于 0:正常,否则异常。 */ writeData(byte[] bData)
设置字体与字符大小及行间距。
@param font:字体。
@param size:大小。
@param spacing:字体的高度。
@return 大于 0:正常,否则异常。 */ setlp(font, size, spacing)
行模式下设置行间距。
@param sF:间距。
@return 大于 0:正常,否则异常。 */ setlf(sF)
打印宽度。
@param pw:指定页面宽度。(单位:px)
@return 大于 0:正常,否则异常。 */ pageWidth(pw)
打印一页标签后延时。
@param wait:延时的单位是:1/8 秒。
@return 大于 0:正常,否则异常。 */ wait(wait)
下划线。
@param uL:true:添加下划线,false:取消下划线。
@return 大于 0:正常,否则异常。 */ underline(uL)
设置蜂鸣器鸣叫时间。
@param beep:蜂鸣声的持续时间,(1/8)秒为单位指定。
@return 大于 0:正常,否则异常。 */ beep(beep)
打印后走纸一定距离。
@param posfeed:走纸的距离。(单位:px)
@return 大于 0:正常,否则异常。 */ postfeed(posfeed)
走纸再打印。
@param prefeed:走纸的距离。(单位:px)。
@return 大于 0:正常,否则异常。 */ prefeed(prefeed)
设置字间距。
@param setsp:间距。
@return 大于 0:正常,否则异常。 */ setSp(setsp)
打印速度。
@param speed:速度类型,总的有 5 种:从 0 到 5 越来越快;5 是理想状态的最快速度。
@return 大于 0:正常,否则异常。 */ speed(speed)
打印浓度。
@param contrast: 浓度类型,总的有四种:
默认 =0
中 =1
黑暗 =2
非常深 =3
@return 大于 0:正常,否则异常。 */ contrast(contrast)
打印图片。
@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 x:图片起始的 x 坐标。(单位:px)
@param y:图片起始的 y 坐标。(单位:px)
@param url:图片的路径。
@return 大于 0 正常;等于-1 图片的宽度或者高度超出打印机的范围。 */ expandedByUrl(x, y, url)
反白框。
@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 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:正常,否则异常。 */ box(x0, y0, x1, y1, width)
打印 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 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)
条码。
@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 align:对齐方式总的有三种: 'CENTER':居中。
'LEFT':左对齐。
'RIGHT':右对齐。
@return 大于 0:正常,否则异常。 */ align(align)
设置字符宽高放大倍数。
@param width:宽的放大倍数。
@param height:高的放大倍数。
@return 大于 0:正常,否则异常。 */ setMag(width, height)
计数。
@param ml:下次加减的数值。
@return 大于 0:正常,否则异常。 */ count(ml)
文本打印。
@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 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)
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)
终止指令。
@return 大于 0:正常,否则异常。 */ abort()
注释。
@param note:注释的内容。
@return 大于 0:正常,否则异常。 */ note(note)
走纸到下一张标签。
@return 大于 0:正常,否则异常。 */ form()
编码指令。
@param code:编码。
@return 大于 0:正常,否则异常。 */ encoding(code)
页标签结束指令。
@return 大于0:正常,否则异常。 */ print()
页标签开始指令。
@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)
打印pdf,须先调用saveBase64(base64Str)传入图片的base64字符串。 */ public void printPdf(imgOptions, callback)
从图片的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)
不能一次性传递过大的参数,因此base64与其他打印参数分开传递。 */ public void saveBase64(base64)
打印图片。
@param imgPath 图片的绝对路径。
@param options
@param callback 回调函数,返回 res = code > 0 时正常,否则异常。 */ public void printImage(imgPath, options, callback)
蓝牙是否连接。
@return 等于true: 连接, false: 断开。 */ isConnected()
蓝牙是否连接。
注意 :该接口只显示 PortOpen 和 PortClose 的结果,并不是监测实时的蓝牙状态(监测
蓝牙的实时连接状态需要监听系统蓝牙广播)。
@return 等于true: 连接, false: 断开。 */ isOpened()
断开函数。
@return 等于0:连接成功,-1 连接失败。 */ portClose()
WiFi连接设备。
@param printIP 打印机 IP 地址(查看自检页)。
@return 0:连接成功,-1:连接异常,-2:地址格式错误,
-3:打印机与 SDK 不匹配(握手指令错误)。 */ portOpenWIFI(printIP)
蓝牙连接设备。
@param mac 蓝牙地址。
@return 0:连接成功,-1:连接异常,-2:蓝牙地址错误,-3:打印机与 SDK 不匹配(握手指令错误)。 */ portOpenBT(mac)
取消注册 */ public void unregister()
注册回调,回调格式:{code,message,data}
code: 1,发现设备;2,连接成功;3,连接断开。 */ public void register(callback)
停止蓝牙扫描 */ stopBtDiscovery()
开启蓝牙扫描,只有汉印打印机HM系列的才会通过register的callback回调 */ startBtDiscovery()