您好,欢迎访问沃航(武汉)科技有限公司官方网站
nodejs通过usb库调用tspl协议控制标签打印机(以佳博打印机为例)
2023-01-01 22:25:22

不说废话,直接写教程:

1.首先要下载Zadig,下载地址传送门,他是一个usb通用驱动程序,因为佳博官方驱动执行device.open会报错。

2.接上打印机并开机,然后按照下图做,以达到驱动能被open的目的。

1.png2.png3.png

3.安装nodejs依赖,方法为npm install usb

4.最终代码如下:

const usb=require('usb')

// let devicelist = usb.getDeviceList()
// console.log(devicelist)
function PrintLabel(cmds) {
	let device = usb.findByIds(0x0471, 0x0055)
	device.open()
	for (let i = 0, len = device.interfaces.length ; i < len ; i++) {
		for (let j = 0, len2 = device.interfaces[i].endpoints.length ; j < len2 ; j++) {
			if (device.interfaces[i].endpoints[j].direction == 'out') {
				device.interfaces[i].claim() // 找到了要用的对象后,首先要声明所有权
				let outEndpoint = device.interfaces[i].endpoints[j]
				outEndpoint.transferType = 2 // bulk 批量传输
				outEndpoint.transfer(cmds, (err) => {
					if (err) {
						console.log(err)
					}
					device.close()
				})
				return
			}
		}
	}
	device.close()
}

let commands = 'SIZE 40 mm,30 mm\r\n' +
'GAP 2 mm,0 mm\r\n' +
'CLS\r\n' +
'TEXT 10,10,"4",0,1,1,"MackerNoon"\r\n' +
'BARCODE 10,60,"128",30,1,0,2,2,"altospos.com"\r\n' +
'PRINT 1\r\n' +
'END'

PrintLabel(commands)

只需要调用本函数即可,注意vid与did不同打印机不同,commands的第一句与第二句代表着纸张是40*30的,两张纸间隔2mm。这两个位置需要根据不同的情况进行修改。


文章作者:沃航科技

联系我们
地址:
武汉市洪山区蓝晶国际7栋903
QQ:
932773931
电话:
027-59761089-806
手机:
13397158231
邮箱:
jevian_ma@worldflying.cn
×
物联网组态平台
试用账号:123456
试用密码:123456
如需测试更多功能或者有疑问可发送邮件至:jevian_ma@worldflying.cn
×
积木编程平台
试用方式:试用手机号码注册即可使用
如需测试更多功能或者有疑问可发送邮件至:jevian_ma@worldflying.cn