更新记录

1.0.6(2024-06-20)

  1. 增加重置数据接口

1.0.5(2024-06-19)

  1. 增加tspl指令

1.0.4(2024-06-19)

  1. 增加zpl和cpcl指令接口
查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.8,Android:5.0,iOS:不支持,HarmonyOS:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

得实集团打印机

开发文档

  1. 集成插件步骤请参考https://www.cnblogs.com/wenrisheng/p/18323027
  2. 拷贝demo示例里的AndroidManifest.xml到项目根目录

接口


import {
    WRSDascomPrinter
} from "@/uni_modules/wrs-dascomprinter"
let printer = new WRSDascomPrinter()
  • 获取USB连接的打印机

printer.getConnectUsbDevice((resp) => {
    this.showMsg(JSON.stringify(resp))
})
  • 连接USB打印机,一定要先调用获取usb打印机接口getConnectUsbDevice再连接

printer.disconnect()
let resp = printer.connectUsbDevice()
this.showMsg(JSON.stringify(resp))
  • wifi连接打印机

printer.connectWifiDevice({
    ip: "192.168.0.1",
    port: 9100
})

printer.connectBluetoothDevice({
    mac: "xxx" // 打印机的mac地址
})
  • 断开连接

printer.disconnect()
  • 重置数据,一般在调用了disconnect后调用

printer.resetData

ZPL打印

  • 标签开始

printer.zplSetLabelStart()
  • 用于设置打印宽度,根据纸张宽度设置打印0点

printer.zplSetLabelWidth({
    labelWidth: 100
})
  • 用于定义标签的长度

printer.zplSetLabelLength({
    len: 100
})
  • 打印位图 图像的宽(高) / 打印机的分辨率 = 实际长度(inch)

var bmp = plus.io.convertLocalFileSystemURL("_www/static/logo.png")
let params = {
    x: 0,
    y: 0,
    bmp: bmp
}
// 修改图片宽高后再打印
// params.newWidth = 100
// params.newHeight = 100
printer.zplPrintBitmap(params)
  • 切纸

printer.zplCut()
  • 用于调整相对于当前暗度设置的暗度

printer.zplSetMediumDarkness({
    darkness:  0 // 接受的值:-30 至 30,具体取决于当前值 开机时的初始值:0
})
  • 设置打印暗度

printer.zplSetDarkness({
    darkness:  0 // 0 至 30
})
  • 打印code128
let params = {}
// 第一种参数
params.horizontal = 0
params.vertical = 0
params.height = 0
params.heightHumanRead = 0 // 注释高/dot 0-10
params.widthHumanRead = 0 // 注释宽/dot 0-10
params.humanRead = true // 显示注释
params.posHumanRead = true // 注释在条码下方
params.content = "123456"

// 第二种参数
//params.horizontal = 0
//params.vertical = 0
//params.height = 0
//params.humanRead = true // 显示注释
//params.posHumanRead = true // 注释在条码下方
//params.content = "123456"

printer.zplPrintCode128(params)
  • zplSetGray

printer.zplSetGray({
    gray:  1
})
  • 字段方向

// dir:
// 0 = 正常
// 1 = 顺时针旋转 90 度
// 2 = 反转 180 度
// 3 = 逆时针旋转 270 度,逆时针读取
printer.zplSetDirection({
    dir:  0
})
  • 打印数量

printer.zplSetDirection({
    total:  1,// 标签的总数,1 至 99,999,999
    group: 0,// 每组标签的数量,1 至 99,999,999
    pause: false // true: 每打印一组标签后会暂停,需手动按进纸继续和切纸(切刀需开启) false: 每打印一组标签后切纸(切刀需开启),不暂停
})
  • 打印横线

printer.zplPrintHLine({
    horizontal:  1,// 水平位置 /dot
    vertical: 0,// 垂直位置 /dot
    length: 1, // 用于绘制作为标签格式组成部分的方框和线条长度,1 至 32000
    thick: 1 // 厚度,1 至 32000
})
  • 打印竖线

printer.zplPrintVLine({
    horizontal:  1,// 水平位置 /dot
    vertical: 0,// 垂直位置 /dot
    length: 1, // 用于绘制作为标签格式组成部分的方框和线条长度,1 至 32000
    thick: 1 // 厚度,1 至 32000
})
  • 打印二维码

let params = {}
params.horizontal = 0
params.vertical = 0
params.QRsize = 1 // 大小 1-10
// 方向
// 接受的值:
// 0 = 正常
// 1 = 顺时针旋转 90 度
// 2 = 反转 180 度
// 3 = 逆时针旋转 270 度,逆时针读取
params.direction = 0 
params.correct = "H" // 纠错级别 'H' 'Q' 'M' 'L'
params.content = "12121"
printer.zplPrintQRCode(params)
  • 打印文本

let params = {}
params.horizontal = 0
params.vertical = 0
params.height = 1 // 高 1-10
params.width = 0 // 宽 1-10
params.text = "12121"
printer.zplPrintText(params)
  • 打印TrueType字体文本

let params = {}
params.horizontal = 0
params.vertical = 0
params.height = 1 // 高 1-10
params.width = 0 // 宽 1-10
params.text = "12121"
printer.zplPrintTextTTF(params)
  • 标签结束 然后开始打印

printer.zplSetLabelEnd()
  • 获取打印状态

let stateObj = printer.zplGetPrinterStatus()

CPCL打印

  • 标签开始

printer.cpclSetLabelStart({
    len: 80, // 设置标签高度
    quantity: 1 // 设置打印数量
})
  • 标签结束

printer.cpclSetLabelEnd()
  • 下划线

printer.cpclSetUnderline({
    flag: true
})
  • 标签打印完毕后会执行换页

printer.cpclFormFeed()
  • 打印文本

printer.cpclSetUnderline({
    x: 0,
    y: 0,
    direction: 0, // 0 - 不旋转 90 - 逆时针旋转90° 180 - 逆时针旋转180° 279 - 逆时针旋转270°
    font: 0, // 字体: 0~7
    size: 0, // 字体对应的大小 ,(font 4,size 0~7)、(font 5,size 0~3)
    text: "1111"
})
  • 打印条码,printCode128

printer.cpclPrintCode128({
    x: 0,
    y: 0,
    width: 100,
    height: 100, 
    data: "1111"
})
  • 打印二维码

printer.cpclPrintQRCode({
    x: 0,
    y: 0,
    size: 6, // 二维码宽度和高度 有效范围:1-32.,默认值是6。
    error: "H",  // 纠错级别, H、Q、M、L
    data: "1111"
})
  • 设置对齐方式

printer.cpclSetAlignment({
    align: "center" // align参数官方文档没有说明
})
  • 设置页宽

printer.cpclSetLabelWidth({
    width: 100
})
  • 打印图片

var bmp = plus.io.convertLocalFileSystemURL("_www/static/logo.png")
let params = {
    x: 0,
    y: 0,
    bmp: bmp
}
// 修改图片宽高后再打印
// params.newWidth = 100
// params.newHeight = 100
printer.cpclPrintBitmap(params)

TSPL打印

  • 标签的开始

printer.tsplSetLabelStart()
  • 设置打印范围

printer.tsplSetSize({
    width: 100,
    height: 100
})
  • 两张标签的间隙

printer.tsplSetGAP({
    m: 100, // 一般垂直间距设定 /dot
    n: 100 // 特殊垂直间距设定 /dot
})
  • 设置打印方向

printer.tsplSetDirection({
    n: 0 // 0 或 1 设置打印方向, 0 -> qqq  1 -> bbb
})
  • 标签的结束

printer.tsplSetLabelEnd({
    m: 1, // 指定打印的份数(set)
    n: 1 // 指定每份打印的张数(copy)
})
  • 切纸

printer.tsplSetCut()
  • 打印文本

let params = {}
params.x = 0
params.y = 0
params.rotation = 0 // 0,90,180,270
params.x_multiplication = 1 // X方向放大倍率1~8
params.y_multiplication = 1 // Y方向放大倍率1~8
params.text = "xxx"
printer.tsplPrintText(params)
  • 打印图片

var bmp = plus.io.convertLocalFileSystemURL("_www/static/logo.png")
let params = {
    x: 0,
    y: 0,
    bmp: bmp
}
// 修改图片宽高后再打印
// params.newWidth = 100
// params.newHeight = 100
printer.tsplPrintBitmap(params)
  • 打印条码

let params = {}
params.x = 0
params.y = 0
params.code_type = "128" // 128、128M
params.height = 100 // 条形码高度,以点(dot)表示
params.humanReadable = true // false: 人眼不可识别 true: 人眼可识别
params.rotation = 0 // 条形码旋转角度,顺时钟方向 0,90,180,270
params.narrow = 50 // 窄bar宽度,以点(dot)表示
params.wide = 50 // 宽bar宽度,以点(dot)表示
params.code = "xxxx" // 内容
printer.tsplPrintCode128(params)
  • 打印二维码

let params = {}
params.x = 0
params.y = 0
params.ECC_level = "H" // 纠错级别, L、M、Q、H
params.cell_width = 5 // 二维码大小 1~10
params.mode = “A” // A : Auto abc M : Manual ABC
params.rotation = 0 // 旋转角度,
params.content = "xxxx" // 内容
printer.tsplPrintQRCode(params)
  • 走纸

printer.tsplFeed({
    dot: 10
})
  • 走纸换页到下一张纸页首

printer.tsplFormFeed()
  • 打印机检测间隙纸然后定位

printer.tsplAutoDetect()
  • 退纸

printer.tsplBackFeed({
    dot: 10
})
  • 画线

printer.tsplPrintBar({
    x: 0,
    y: 0,
    width: 5,
    height: 10
})
  • 绘制矩形

printer.tsplPrintBox({
    xStart: 0,
    yStart: 0,
    xEnd: 50,
    yEnd: 50,
    lineThickness: 1 // 矩形框线厚度,以点(dot)表示
})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

蓝牙、Wi-Fi

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 XX SDK会采集数据,详情可参考:https://www.dascom.cn

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问