
小程序得力打印机-打印的二维码扫不出来
常见的三总打印指令有
tspl 贴码打印机 对应tscjs
esc 热敏纸长条打印 对应escjs
cpcl 快递贴码
在贴码打印机中常用佳博的 tscjs 打印二维码一般没问题
这次遇到得了 得力的750W打印机 二维码能正常打印但是扫不出来
其实可以说明 得力的750W是适用tspl指令的
方案一 (放弃)
灵感来源于 多多买菜
在面对不同标签大小,输出的内容排版能够等比例缩放,想到tscjs中可以打印图片
但是打印的图片需要通过canvas输出 canvasGetImageData 获取数据流
最后实现方案是设置canvas背景为白色提前生成好内容 二维码。
放弃原因
生产的canvas数据过大,每一个像素点的颜色都调整,虽然纸是60*40 80*60mm 但是实际上输出的像素点确实上万个
画布大小和实际打印需要的大小难以匹配
方案二
在否定了第一个方案后,开始研究原始的指令
"QRCODE " + x + "," + y + "," + level + "," + width + "," + mode + "," + 0 + ",\"" + content +"\"\r\n"
将每一个参数修改后还是无法实现扫码,接着到插件市场一个一个插件的尝试,发现其实都一样,但是有的插件中附带文档
最最后快要放弃的时候,打开了文档一个一个参数的看
皇天不负苦心人,最后试了手动模式 发现原来在代码中修改模式,没有传入参数,所以导致手动模式未生效
最后修改代码成
jpPrinter.setQrcode = function(x, y, level, width, mode, content) {
if(mode === 'A') {
data = "QRCODE " + x + "," + y + "," + level + "," + width + "," + mode + "," + 0 + ",\"" + content +"\"\r\n"
} else {
data = "QRCODE " + x + "," + y + "," + level + "," + width + ",M," + 0 + ",M1,S1,\"" + content +"\"\r\n"
}
jpPrinter.addCommand(data)
};
实现打印
成功!
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果