更新记录
1.0.5(2024-08-14)
- 修复usb内部循环问题
1.0.4(2024-03-21)
- 优化库
1.0.3(2024-02-22)
- 增加浓度、打印速度、水印、行间距等接口
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.6.8,Android:4.4,iOS:不支持,HarmonyNext:不确定 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
汉印打印机,支持打印文本、图片、文件、二维码、一维码,支持Wi-Fi、蓝牙、usb连接
开发文档
型号A300E
快速接入
import {
UTSPrinterHelper
} from '@/uni_modules/wrs-uts-hmae'
- 蓝牙连接接口,蓝牙地址(大写)
动态扫描蓝牙获取mac地址请参考插件https://ext.dcloud.net.cn/plugin?id=13533
UTSPrinterHelper.portOpenBT(this.macAddress, (resp) => {
this.showMsg(JSON.stringify(resp))
if (resp.flag) {
if (resp.result == 0) {
this.showMsg("连接成功")
}
}
})
- wifi连接
UTSPrinterHelper.portOpenWIFI(this.ip, (resp) => {
this.showMsg(JSON.stringify(resp))
if (resp.flag) {
if (resp.result == 0) {
this.showMsg("连接成功")
}
}
})
- USB连接
动态获取所有连接的usb设备请参考插件https://ext.dcloud.net.cn/plugin?id=13300
UTSPrinterHelper.portOpenUSB(parseInt(this.deviceId), (resp) => {
this.showMsg(JSON.stringify(resp))
if (resp.flag) {
if (resp.result == 0) {
this.showMsg("连接成功")
}
}
})
- 设置SDK编码
UTSPrinterHelper.languageEncode = "GBK" // GBK、iso8859-1
- 设置行模式的X坐标,必须放在setlp函数之前,横坐标(单位:dot)
UTSPrinterHelper.rowSetX(x, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 设置行模式字体大小与行高
let font = "5"
let size = "2"
let spacing = "32"
UTSPrinterHelper.setlp(font, size, spacing, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 行打印模式字体加粗
let bold = "5"
UTSPrinterHelper.rowSetBold(bold, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 字体加粗
let bold = "5"
UTSPrinterHelper.setBold(bold, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 行打印模式打印文本
let str = "xxxxx"
UTSPrinterHelper.printData(str, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 是否已经打开
let isOpened = UTSPrinterHelper.isOpened()
- 断开连接
UTSPrinterHelper.portClose((resp) => {
this.showMsg(JSON.stringify(resp))
})
- 打印文件
let filePath = "/xxx/xxx.png"
UTSPrinterHelper.printBinaryFile((filePath, resp) => {
this.showMsg(JSON.stringify(resp))
})
- 打印图片
let image = "/xxx/xxx.png" // 需打印图片的Bitmap的对象(需自己调节好图片尺寸,200dpi 8px=1mm)
let x = 0 // 图片起始的x坐标。(单位:dot
let y = 0 // 图片起始的y坐标。(单位:dot)
let type = 0// 图片算法。0:二值算法;1:半色调算法 2:聚合算法
let compressType = 0 // 0:不压缩,1:整体压缩,(适合较小的图片)2:分包压缩,(适合较大的图片)
let light = 0// 亮度(范围 -100 到 100)
UTSPrinterHelper.printBitmapCPCL(image, x, y, type, compressType, light, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印图片,该接口只可以由于行模式(里面已包含开头接口和Print接口)。
let image = "/xxx/xxx.png" // 需打印图片的Bitmap的对象(需自己调节好图片尺寸,200dpi 8px=1mm)
let x = 0 // 图片起始的x坐标。(单位:dot
let y = 0 // 图片起始的y坐标。(单位:dot)
let type = 0// 图片算法。0:二值算法;1:半色调算法 2:聚合算法
let compressType = 0 // 0:不压缩,1:整体压缩,(适合较小的图片)2:分包压缩,(适合较大的图片)
let isform = true// 是否定位,(连续纸模式下只能使用false)
let segments = 1 // 分包次数(不小于1)默认1
UTSPrinterHelper.printBitmap(image, x, y, type, compressType, isform, segments, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印自身
let result = UTSPrinterHelper.printSelf()
- 获取电压
let result = UTSPrinterHelper.getVoltage()
- 获取打印机版本号
let result = UTSPrinterHelper.getPrinterVersion()
- 设置标签高度
let offset = "0" // 上下文对象
let horizontal = "200" // 打印机水平方向dpi(根据实际打印机dpi设置)
let vertical = "200" //打印机垂直方向dpi(根据实际打印机dpi设置)
let height = "100"// 标签高度 (单位:dot)200dpi 8 dot = 1mm,300dpi 12 dot = 1mm
let qty = "1" // 打印次数
UTSPrinterHelper.printAreaSize(offset, horizontal, vertical, height, qty, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 走纸
let prefeed = "40" // 走纸的距离。(单位:dot)
UTSPrinterHelper.prefeed(prefeed, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印完走纸
let prefeed = "40" // 走纸的距离。(单位:dot)
UTSPrinterHelper.postfeed(prefeed, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 蜂鸣器
let beep = "40" // 蜂鸣声的持续时间,(1/8)秒为单位
UTSPrinterHelper.beep(prefeed, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 下划线
let enable = true //
UTSPrinterHelper.underline(enable, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 设置双色打印
let layer = 0 // layer需要打印的颜色, 0:红色,1:黑色
let result = UTSPrinterHelper.setLayer(layer)
- 对齐方式
let align = "left" // left、right、center
UTSPrinterHelper.align(align, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 文本打印
let command = "text" // 文字的方向 text:水平。text90:逆时针旋转90度。text180:逆时针旋转180度。text270:逆时针旋转270度
let font = "7" // 字体点阵大小
let size = "0" // 字体大小。(该功能被屏蔽统一参数传0)
let x = "0" // 横坐标(单位 dot)
let y = "0" // 纵坐标(单位 dot)
let data = "xxxx" // 文本数据
UTSPrinterHelper.text(command, font, size, x, y, data, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印条码
let command = "barcode" // barcode:水平方向 vbarcode:垂直方向
let type = "7" // 条码类型:upca、upca2、upca5、upce、upce2、upce5、ean13、ean132、ean135、ean8、ean82、ean85、code39、code39c、f39、f39c、code93、i20f5、i20f5c、i20f5g、code128、uccean128、codabar、codabar16、msi、msi10、msi1010、msi1110、postnet、fim
let width = "1" // 窄条的单位宽度
let ratio = "1" // 宽条窄条的比例
let height = "50" // 条码高度
let x = "0" // 条码的起始横坐标
let y = "0" // 条码的起始纵坐标
let undertext = true // 条码下方的数据是否可见
let number = "7" // 字体的类型 (undertext=true才生效)
let size = "0" // 字体的大小(undertext=true才生效)
;et offset = "5" // 条码与文字间的距离(undertext=true才生效)
let data = "123456789" // 条码数据
UTSPrinterHelper.barcode(command, type, width, ratio, height, x, y , undertext, number, size, offset, data, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印标签起定位作用(连续纸不可用)
UTSPrinterHelper.form( (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印
UTSPrinterHelper.print( (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 设置蓝牙名字
let name = "bbb"
let result = UTSPrinterHelper.setBluetoothName(name)
- 设置保存
let result = UTSPrinterHelper.saveParameter()
- 选择字库打印文本,该接口通过传输字库的名字,选择对应的字库打印机,字库需要通过工具先下载给打印机。
let command = "text" // 文字的方向 text:水平。text90:逆时针旋转90度。text180:逆时针旋转180度。text270:逆时针旋转270度
let fontName = "7" // 字库名称:SIMSUN.TTF、TT0003M_.TTF
let xScale = "1" // x轴方向字体放大倍数
let yScale = "1" // y轴方向字体放大倍数
let x = "0" //起始横坐标
let y = "0" // 起始纵坐标
let data = "123456789" // 条码数据
UTSPrinterHelper.barcode(command, fontName, xScale, yScale, x, y, data, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印矩形框
let x1 = "1" //左上角的X坐标。(单位:dot)
let y1 = "1" // 左上角的Y坐标。(单位:dot)
let x2 = "7" // 右下角的X坐标。(单位:dot)
let y2 = "7" // 右下角的Y坐标。(单位:dot)
let width = "1" //线条的单位宽度。 (默认:1)
UTSPrinterHelper.box(x1, y1, x2, y2, width, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印直线
let x1 = "1" //左上角的X坐标。(单位:dot)
let y1 = "1" // 左上角的Y坐标。(单位:dot)
let x2 = "7" // 右下角的X坐标。(单位:dot)
let y2 = "7" // 右下角的Y坐标。(单位:dot)
let width = "1" //线条的单位宽度。 (默认:1)
UTSPrinterHelper.line(x1, y1, x2, y2, width, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 获取打印机SN
UTSPrinterHelper.line((resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印机回退
var feed = 1 // feed | 回退距离。(单位:行,范围:1-255)。
UTSPrinterHelper.reverseFeed(feed, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印文本
var str = "465454" //
UTSPrinterHelper.printText(str, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- expanded
let str1 = ""
let str2 = ""
let image = ""
let i1 =0
let i2 = 0
UTSPrinterHelper.expanded(str1, str2, image, i1, i2, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- setPaperFourInch
var value = 0 // 0、4、5、6
UTSPrinterHelper.setPaperFourInch(value, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- papertype_CPCL_TWO
var value = 0 // 48、49、50、51、52、53、54、55、56、57
UTSPrinterHelper.papertype_CPCL_TWO(value, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- 打印二维码
let command = "barcode" // barcode:水平方向 vbarcode:垂直方向
let x = "0"
let y = "0"
let m ="1" // QR的类型:1:普通类型 2:在类型1的基础上增加了个别的符号
let u = "6" // 单位宽度/模块的单元高度,范围是1到32默认为6
let data = "45451" // 二维码的数据
UTSPrinterHelper.printQR(command, str2, image, i1, i2, (resp)=>{
let flag = resp.flag
if(flag) {
let result = resp.result
if(result > 0) { // 发送成功
}
}
})
- setIsListenerBT
let enable = true
UTSPrinterHelper.setIsListenerBT(enable)
- setDisConnectBTListener
UTSPrinterHelper.setDisConnectBTListener(()=>{
})
-
sendUpdateToPrint 暂未实现
-
文本打印自动换行(不能使用泰语)
var x = "0" // 文字的起始的x坐标。(单位:dot)
var y = "0" // 文字的起始的y坐标。(单位:dot)
var width= 100, // 一行打印的宽度。(单位:dot)
var size = 10 // 字体大小<br />3:20x20或10x20,视中英文而定。<br/>4:32x32或16x32,由ID3字体宽高各放大2倍。<br/>8:24x24或12x24,视中英文而定。<br/>55:16x16或8x16,视中英文而定。
var isbole = true // true:加粗。<br/>false:不加粗
var isdouble = true // 字体大小翻倍<br />true:放大。<br/>false:不放大。
var str = "afasdf" // 打印文本
UTSPrinterHelper.autLine(x, y, width, size, isbole, isdouble, str)
- 文本打印自动换行(打印机固件必须在A300 V1.01.40.01以上且文本字节数不得超过1024,超过部分自动忽略。)
var x = "0" // 文字的起始的x坐标。(单位:dot)
var y = "0" // 文字的起始的y坐标。(单位:dot)
var width= "100", // 一行打印的宽度。(单位:dot)
var size = 10 // 字体大小<br />3:20x20或10x20,视中英文而定。<br/>4:32x32或16x32,由ID3字体宽高各放大2倍。<br/>8:24x24或12x24,视中英文而定。<br/>55:16x16或8x16,视中英文而定。
var isbole = true // true:加粗。<br/>false:不加粗
var isdouble = true // 字体大小翻倍<br />true:放大。<br/>false:不放大。
var str = "afasdf" // 打印文本
UTSPrinterHelper.autLine2(x, y, width, size, isbole, isdouble, str)
- 设置字符宽高放大倍数
var width= "100", // 字体宽度的放大倍数
var height= "100", // 字体高度的放大倍数
UTSPrinterHelper.setMag(width, height)
- 打印PFD417码
var command = "BARCODE"// 水平方向:BARCODE 垂直方向:VBARCODE
var x = "0" // PDF417的起始横坐标。(单位:dot)
var y = "0" // PDF417的起始纵坐标。(单位:dot)
var XD = "2" // 最窄元素的单位宽度。范围是1到32,默认为2
var YD = "6" // 最窄元素的单位高度。范围是1到32,默认值是6
var C = "3" // 使用的列数,数据列不包括启动/停止字符和左/右指标,范围为1到30;默认值是3
var S = "1" // 安全级别表示要检测到的错误的最大金额和/或校正,范围为0到8;默认值是1
var data = "ssss" // PDF417码的数据
UTSPrinterHelper.printPDF417(command, x, y, XD , YD, C, S , data)
- 打印浓度
var contrast = "0"// 浓度类型,总的有四种:<br/>默认 = 0<br/>中 = 1<br/>黑暗 = 2<br/>非常深 = 3
UTSPrinterHelper.contrast(contrast)
- 打印速度
var speed = "0"// 速度类型,总的有5种:从0到5越来越快;5是理想状态的最快速度
UTSPrinterHelper.speed(speed)
- 设置行间距
var sp = "1"// 间距(单位:行)
UTSPrinterHelper.setSp(sp)
- 获取打印机状态
| status == 0 | 打印机正常 |
| status == -1 | 发送失败 |
| (status & 2) == 2 | 缺纸 |
| (status & 4) == 4 | 开盖 |
var status = UTSPrinterHelper.getPrinterStatus()
- 旋转180度打印
var status = UTSPrinterHelper.poPrint()
- 水印
var x = 0 // 横坐标(单位:dot)
var y = 0 // 纵坐标(单位:dot)
var size = 2 // 字体大小<br />55:16X16(dot)。<br/>24:24X24(dot)。<br/>56:32X32(dot)。<br/>其他:24X24(dot)。
var background = 6 // 背景黑度(0-255)
var data = "ssss" // 数据
UTSPrinterHelper.printBackground(x, y, size, background, data)