微信小程序蓝牙打印开发心得
此项目是使用的汉印HM-A400蓝牙打印机,在此过程中整理并总结了一些经验。
经验一:
此款标签打印机支持的打印语言为cpcl、esc、tspl,此案例中我使用的是cpcl语言,要具体打印动态内容我写在一个js函数里,cpcl语法规则具体参考:
let printStyle = ! 0 200 200 640 1 + PW 1000 + SETMAG 1 1 + TEXT 7 0 20 60 交易类型: + searchDetail.type + + TEXT 7 0 20 90 门店名称: + searchDetail.store_name + + TEXT 7 0 20 120 时间日期: + searchDetail.active_time + + TEXT 7 0 20 150 交易人员: + searchDetail.operator_name + + TEXT 7 0 20 180 金额总计: + strTotalMoney + + TEXT 7 0 20 210 序号 + 产品 + 批次 + 数量 + 单价 + + productList + + PRINT
但是此项目客户有个需求就是需要在标签纸上打印出多个这样的列表内容,经过我反复尝试,无法将宽度、高度作为动态变量来计算,如果这样做,打印出来的就会是乱码,经过咨询汉印官方技术后,只能采用穷举的方式,
import checkTEXT from ./checkTEXT.js // “门店交易” 打印的标签样式 function dealStyle(searchDetail) { // 扫码列表 let productList = let totalMoney = 0 for (let i = 0; i < searchDetail.lines.length; i++) { let order = dealTEXT[i].first + String(i + 1) + let product = dealTEXT[i].second + searchDetail.lines[i].product + let batch = dealTEXT[i].third + searchDetail.lines[i].batch + let qty = dealTEXT[i].fourth + String(searchDetail.lines[i].qty) + let price = dealTEXT[i].fifth + String(searchDetail.lines[i].price) + productList += order + product + batch + qty + price totalMoney += (Number(searchDetail.lines[i].price) * Number(searchDetail.lines[i].qty)) } let strTotalMoney = String(totalMoney) let printStyle = ! 0 200 200 640 1 + PW 1000 + SETMAG 1 1 + TEXT 7 0 20 60 交易类型: + searchDetail.type + + TEXT 7 0 20 90 门店名称: + searchDetail.store_name + + TEXT 7 0 20 120 时间日期: + searchDetail.active_time + + TEXT 7 0 20 150 交易人员: + searchDetail.operator_name + + TEXT 7 0 20 180 金额总计: + strTotalMoney + + TEXT 7 0 20 210 序号 + 产品 + 批次 + 数量 + 单价 + + productList + + PRINT return printStyle }
checkTEXT.js文件,
exports.dealTEXT = [{ first: TEXT 7 0 20 210 , second: TEXT 7 0 120 210 , third: TEXT 7 0 260 210 , fourth: TEXT 7 0 410 210 , fifth: TEXT 7 0 500 210 }, { first: TEXT 7 0 20 240 , second: TEXT 7 0 120 240 , third: TEXT 7 0 260 240 , fourth: TEXT 7 0 410 240 , fifth: TEXT 7 0 500 240 }, { first: TEXT 7 0 20 270 , second: TEXT 7 0 120 270 , third: TEXT 7 0 260 270 , fourth: TEXT 7 0 410 270 , fifth: TEXT 7 0 500 270 }, { first: TEXT 7 0 20 300 , second: TEXT 7 0 120 300 , third: TEXT 7 0 260 300 , fourth: TEXT 7 0 410 300 , fifth: TEXT 7 0 500 300 }]
经验二:
之后我们改变策列直接将要打印的内容生成图片,小程序选择其他应用打开,选择汉印App直接打印就行(如果打印没有反应,可以升级打印机固件到最新版解决)。
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序登陆界面(效果图+源代码)