微信小程序蓝牙打印开发心得
此项目是使用的汉印HM-A400蓝牙打印机,在此过程中整理并总结了一些经验。
此链接为汉印HM-A400蓝牙打印官方给的微信小程序demo:https://gitee.com/harlinmin/hanyin-hm-400-bluetooth-print-demo.git
经验一:
此款标签打印机支持的打印语言为cpcl、esc、tspl,此案例中我使用的是cpcl语言,要具体打印动态内容我写在一个js函数里,cpcl语法规则具体参考:https://gitee.com/harlinmin/cpcl-print.git
let printStyle = '! 0 200 200 640 1\r\n' +'PW 1000\r\n' +'SETMAG 1 1\r\n' +'TEXT 7 0 20 60 交易类型: ' + searchDetail.type + '\r\n' +'TEXT 7 0 20 90 门店名称: ' + searchDetail.store_name + '\r\n' +'TEXT 7 0 20 120 时间日期: ' + searchDetail.active_time + '\r\n' +'TEXT 7 0 20 150 交易人员: ' + searchDetail.operator_name + '\r\n\r\n' +'TEXT 7 0 20 180 金额总计: ' + strTotalMoney + '\r\n' +'TEXT 7 0 20 210 序号 ' + '产品 ' + '批次 ' + '数量 ' + '单价 ' + '\r\n' +productList + '\r\n' +'PRINT\r\n'
但是此项目客户有个需求就是需要在标签纸上打印出多个这样的列表内容,经过我反复尝试,无法将宽度、高度作为动态变量来计算,如果这样做,打印出来的就会是乱码,经过咨询汉印官方技术后,只能采用穷举的方式,
import checkTEXT from './checkTEXT.js'// “门店交易” 打印的标签样式
function dealStyle(searchDetail) {// 扫码列表let productList = ''let totalMoney = 0for (let i = 0; i < searchDetail.lines.length; i++) {let order = dealTEXT[i].first + String(i + 1) + '\r\n'let product = dealTEXT[i].second + searchDetail.lines[i].product + '\r\n'let batch = dealTEXT[i].third + searchDetail.lines[i].batch + '\r\n'let qty = dealTEXT[i].fourth + String(searchDetail.lines[i].qty) + '\r\n'let price = dealTEXT[i].fifth + String(searchDetail.lines[i].price) + '\r\n'productList += order + product + batch + qty + pricetotalMoney += (Number(searchDetail.lines[i].price) * Number(searchDetail.lines[i].qty))}let strTotalMoney = String(totalMoney)let printStyle = '! 0 200 200 640 1\r\n' +'PW 1000\r\n' +'SETMAG 1 1\r\n' +'TEXT 7 0 20 60 交易类型: ' + searchDetail.type + '\r\n' +'TEXT 7 0 20 90 门店名称: ' + searchDetail.store_name + '\r\n' +'TEXT 7 0 20 120 时间日期: ' + searchDetail.active_time + '\r\n' +'TEXT 7 0 20 150 交易人员: ' + searchDetail.operator_name + '\r\n\r\n' +'TEXT 7 0 20 180 金额总计: ' + strTotalMoney + '\r\n' +'TEXT 7 0 20 210 序号 ' + '产品 ' + '批次 ' + '数量 ' + '单价 ' + '\r\n' +productList + '\r\n' +'PRINT\r\n'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直接打印就行(如果打印没有反应,可以升级打印机固件到最新版解决)。
微信小程序蓝牙打印开发心得相关推荐
- 微信小程序蓝牙BLE开发——关于进制转换(四)
微信小程序蓝牙BLE开发--进制转换 这段时间开发共享设备,对接蓝牙BLE设备通信协议,过程中用到一些进制转换, 记录下方便使用. 有些参考大神们,感谢分享. 文章目录 微信小程序蓝牙BLE开发--进 ...
- 微信小程序蓝牙BLE开发实战——案例(二)
微信小程序蓝牙BLE开发实战(二) 上篇主要介绍在开发过程中应用到相关API操作.接下来介绍个人在项目开发中应用蓝牙BLE一些事情. 由于时间比较仓促, 有些注释没那么详细.请理解~写的不好欢迎各位大 ...
- 微信小程序蓝牙功能开发与问题记录
一.蓝牙支持情况 1. 微信小程序对蓝牙的支持情况 目前普遍使用的蓝牙规格:经典蓝牙和蓝牙低功耗. 经典蓝牙(蓝牙基础率/增强数据率):常用在对数据传输带宽有一定要求的大数据量传输场景上,比如需要传输 ...
- 微信小程序蓝牙BLE开发——写入一串16进制数据,低字节在前(五)
微信小程序BLE发送一串16进制数据,低字节在前 文章目录 微信小程序BLE发送一串16进制数据,低字节在前 场景 获取UTC时间 写入数据 向设备发送16进制数据 字节转换 验证发送UTC时间 场景 ...
- 微信小程序蓝牙打印二维码
会有很多算是废话的内容,但是都是我踩的坑,顺便记录下.(不一定适用所有的打印机,) 由于这个项目我只负责二维码打印,所以前面的蓝牙连接,文字打印我就不多说了,我自己也不是很清楚.不过有一点我是要说下的 ...
- 微信小程序蓝牙打印以及打印二维码
方式一: 通过微信与机器建立连接之后然后通过指定指令去进行打印 方式二: 不使用指令,使用微信api进行打印,先要进行转码,打印中文会有一个乱码的情况可以看一下下面的链接, 乱码情况: https:/ ...
- 微信小程序蓝牙对接热敏打印机
更多文章请访问 深的个人博客 最近开发的一个小程序里需要对接热敏打印机打印小票,在此记录一下对接的过程 项目开发注意点: 1.因为项目中有多个页面的数据是需要进行打印的,为了保持蓝牙的连接状态和数据, ...
- wx.getBLEDeviceCharacteristics 微信小程序蓝牙 微信小程序热敏打印机
1 微信小程序蓝牙功能开发概述 第一步 判断当前微信版本,是否支持蓝牙 通信 第二步 打开蓝牙 第三步扫描设备 第四步连接设备 第五步 获取服务与特征值 看是否支持读写数据操作 第六步 发送数据 本文 ...
- 微信小程序蓝牙标签打印/标签云打印开放平台(2)
微信小程序蓝牙标签打印/标签云打印开放云平台(下面简称"平台" www.herro.cn 技术服务TEL:15759216805),支持开发者通过API调用完成标签蓝牙打印或标签云 ...
- 微信小程序蓝牙模块BLE开发说明基础知识
微信小程序蓝牙模块说明 一.简介 微信小程序作为轻量级应用的载体,确实方便了很多的应用场景.传统的产品如果要和手机互联互通,那么必须要开发两套APP,即IOS和安卓.十分的麻烦和成本巨高.但是微信小程 ...
最新文章
- IDEA Spring框架入门实例
- 21、Java Swing JOptionPane:对话框组件
- python逗号代码_基于Python3 逗号代码 和 字符图网格(详谈)
- oracle rownum 学习
- Tomcat NIO
- CI Weekly #11 | 微服务场景下的自动化测试与持续部署
- java的地位和优势,Java语言之所以能持续占领霸主地位 这些优势功不可没
- 初识生成器与生成器表达式 Day12
- html垂直线6,HTML的垂直线
- 前端页面常用代码参考
- python-制作手机通讯录导入的vcf格式文件,txt格式转vcf格式
- unity学习笔记-3dmax人型动画导入unity需要注意的事项
- 在deepin 上安装佳能MF 4700打印机驱动
- android获得cache路径,android取得当前程序File与Cache路径!
- 坑爹的360漏洞修补造成win7黑屏
- 灰度、rgb之间的概念
- 如何在linux下安装rar软件,Linux下安装使用RAR压缩软件的方法
- react中使用lazy函数进行路由懒加载
- 粮仓分布式多点测温的简单参考方案
- EPSON1100清零软件 在哪有?
热门文章
- Android 应用开发---TextView(文本框)详解
- 掌上书院UMD文件格式分析
- 通信专业顶刊_通信类期刊排名_2016通信期刊排名_2016通信前沿新技术
- php怎么解析xml,php解析xml方法实例详解
- python强制删除文件夹_对Python各种删除文件失败的处理方式-强制删除文件
- DSA数字签名原理及python实现
- 小米手机隐私相册在哪?将你的照片锁进“保险柜”
- CMFCMenuBar 的另类动态修改
- 计算机编号、硬盘序列号和Mac地址查询方法
- 信息系统服务器搬迁,系统搬迁方案