当前位置: 首页 > 开发服务  > 开发服务

汉印便携式打印机-HM-A400-058A打印插件

2025/5/28 13:45:23 人评论

基本使用方法1. 在页面中引入:const printMgr = uni.requireNativePlugin(xfbao-PrinterManager)2. 扫描设备:startBtDiscovery() / stopBtDiscovery()3. 连接:portOpenBt() / portOpenWIFI()4. 注册监听设备发现,连接和断开的回调:printMgr.registerCallback()5. 打…

基本使用方法

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()


    上一篇:软件定制开发

    下一篇:摸金校尉

    相关资源

    • 用友U8二次开发

      U8二次开发1.数据接口,与企业当前所用的其他系统实现基础信息共享,业务数据传递。包括财务接口(凭证、应收、应付),单据接口(库存、销售、采购中所有单据)。2.系统单据、列表、报表等模块的个性化修改。3.新的单据以及模块的开发,可以和系统原有单据紧密结合,组成…

      2022/2/24 14:21:44
    • 软件定制开发

      软件定制开发:股权管理系统、地磅管理系统、服装零售管理系统、工会收费系统、 门窗管理系统 、医疗器械管理系统、商场物业租赁管理系统、 医院绩效管理系统 、费用报销管理系统、家具计件工资管理系统、珠宝零售管理系统、药品销售提成系统、用友外部凭证导入工具、停车…

      2022/11/2 11:25:19
    • 用友财务报表开发

      用友T+,U8财务报表开发。可能由于系统版本本身的局限性,导致系统中自带的报表没有办法满足现下财务的需求,我们针对此类用户开发定制报表功能。专业的财务开发人员,专业的服务团队。

      2022/3/2 16:49:35
    • 用友U8ERP软件与OA集成接口集成

      现在很多企业不止用一个ERP系统还有很多其他的系统,为了让ERP不成为信息孤岛,很多企业就需要将所拥有的系统进行数据集成,减少企业员工的工作量,相对提高数据的时效性,我们可以将用友ERP系统的接口对接OA\MES\PLM\SRM等

      2022/3/2 16:30:40