JavaScript 打印教程(第一部分)
开始之前:请确认你的打印机类型及其支持的指令集
不同的打印机理解不同的指令,因此查询打印机支持的指令集至关重要。这非常关键!!!
这里提供了一些指令集的PDF链接:
1、生成指令
本教程将演示使用 tspl
指令集。其他指令集的过程类似。
打开PDF后,你可能会遇到这样的命令。让我们手动复制它:
let str = `SIZE 58 mm,30 mm
GAP 2 mm
CLS
TEXT 50,50,"4",0,1,1,"DEMO FOR TEXT"
PRINT 1`
是的,就是这样,你已经创建了一个 tspl
指令。
2、生成缓冲数据
此时,命令还不能直接发送给打印机。我们需要将 字符串
转换成 UTF-16
代码单元。
function stringToCharCodeArray(str){
return Array.from(str).map((char) => char.charCodeAt(0));
}
let charCodes = stringToCharCodeArray(str)
接下来,我们将其转换成缓冲数据:
function getBuffer( charCodes ) {
let buffer = new ArrayBuffer(charCodes.length);
let dataView = new DataView(buffer);
for (let i = 0; i < charCodes.length; i++) {
dataView.setUint8(i, charCodes[i]);
}
return buffer;
}
let buffer = getBuffer(charCodes)
console.log(buffer);
3、运行指令
这个buffer数据有什么作用:
- 只要你的打印机支持
tspl
指令,这个buffer
数据就是通用的。
接下来怎么做:
- 根据你的平台搜索
蓝牙api
,比如 微信小程序操作蓝牙、浏览器操作蓝牙、uniapp操作蓝牙;
蓝牙连接成功后:
- 成功通过蓝牙连接打印机后,你可以发送你生成的
buffer
数据给打印机。
打印机打印出了输入的指令:
- 通常意味着打印机不支持给定的指令。在线搜索你特定型号打印机支持的指令集。