最近接到一个需要,客户须要应用打印标签的服务。须要手机端操作,那样就不能应用厂家驱动来应用了,之前没有接触过打印指令,看了当初商用打印机指令罕用的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 形式传参。

打印成果

  我不必再去计算打印像素值和坐标值了,只有把数据传过来就行,太敌对了。
而且对接期间,发现不能应用调用动静图片,跟他们开发人员沟通后,他们示意这个性能很快就上线了。微信小程序抉择云打印办法,挺不便的,大家能够试试。