微信小程序除了蓝牙打印,还有更好的方法

  最近接到一个需求,客户需要使用打印标签的服务。需要手机端操作,那样就不能使用厂家驱动来使用了,之前没有接触过打印指令,看了现在商用打印机指令常用的esc/pos挺头疼的,cpcl还好一点不过也需要重新研究。

  一开始已经有微信小程序的应用,所以打算使用蓝牙来打印,微信小程序目前只支持低功耗蓝牙(BLE),微信的文档 已经很详细了,就不重新复述了。
微信使用蓝牙最大的问题也是低功耗蓝牙,安卓设备可以调用 wx.setBLEMTU 进行 MTU 协商,但是苹果只能使用 20 字节为单位传输,算起来只有2kb/s,内容有图片的时候,打印速度实在太慢,而且微信小程序为啥一定要位置权限呢(大雾)。

  基于上面原因,蓝牙打印的方法就被放弃了。然后接触到jolimarX的云打印机,支持很多种类的接口,总体来说支持html、esc、json、云模版、图片、pdf等等。特别是云模版的接口,只需要在开发平台上注册账号,然后在云模版新建一个模版,根据自己需要设计模版。

设计好模版后点击右上角“打印预览”

在预览页底部可以看到,模版 ID、JSON

图片中 Json 便是调用“打印云模版”中 bill_content 对应的数据如:
{"barCode":"20190117001","Kdate":"2019-01-17","billno":"820190117001","receivCom":"映美北京分公司","receiver":"张三","receivAd":"北京市朝阳区朝阳公园南路 108 号
","receivTel":"010-65953789","seder":"映美深圳分公司","sendAd":"深圳市南山区科技南路九洲电器大厦 708","chargeer":"陆正坤","serviceTel":"0755-8889998","QRcode":"http://open.jolimark.com","remarks":"这批货包含CTP535 打印机8000 台,CLP180 打印机 5000 台"}

整个调用参数:
template_id:47950d9a18f8f3f2
cus_orderid:2018011121
paper_type:1
order_id:201811231
copies:1
paper_width:210
time_out:180
access_token:t123456
device_ids:18340058AL
app_id:a123456
paper_height:140
bill_content:{"barCode":"20190117001","Kdate":"2019-01-17","billno":"820190117001","receivCom":"映美北京分公司","receiver":"张三","receivAd":"北京市朝阳区朝阳公园南路 108 号","receivTel":"010-65953789","seder":"映美深圳分公司","sendAd":"深圳市南山区科技南路九洲电器大厦 708","chargeer":"陆正坤","serviceTel":"0755-8889998","QRcode":"http://open.jolimark.com","remarks":"这批货包含CTP535 打印机 8000 台,CLP180 打印机 5000 台"}

其中bill_content 内容多,需以 form-data 方式传参。

打印效果

  我不用再去计算打印像素值和坐标值了,只要把数据传过去就行,太友好了。
而且对接期间,发现不能使用调用动态图片,跟他们开发人员沟通后,他们表示这个功能很快就上线了。微信小程序选择云打印方法,挺方便的,大家可以试试。

你可能感兴趣的:(微信小程序开发程序员)