微信小程序蓝牙标签打印/标签云打印开放平台(2)
微信小程序蓝牙标签打印/标签云打印开放云平台(下面简称“平台” www.herro.cn 技术服务TEL:15759216805),支持开发者通过API调用完成标签蓝牙打印或标签云打印功能。平台支持的功能请微信搜索小程序“标签快印”试用。
主要功能:
1、本平台蓝牙打印模块支持各厂商各品牌蓝牙标签打印机和小票打印机。
2、本平台蓝牙连接模块支持微信小程序与各类低功率蓝牙设备(BLE4.2及以上蓝牙协议)快速稳定通讯;
3、云标签打印模块支持各品牌有USB打印口的标签打印机;本平台支持各种主流标签机小票机打印语言,如:CPCL、ESC、TSPL、ZPL等。
4、汉字图片化并转各打印语言打印16进制码,图片、二维码、条形码转码、EXECL表标签打印等
------------------------------------------
平台的自定义语法与打印模板管理
自定义语法与不同打印语言的打印机脚本
一个标签的打印内容一般可分为“可变数据”、“固定数据”两部分,如上图标签红框内是“可变数据”,其他部分为“固定数据”
自定义语法功能是定义和向平台传递“可变数据”的属性参数,
如上图中“米饭”二字在打印机输出时,可以有两种方式处理,一种是调用打印机字库内码输出,另一种是在云平台转化为图片,打印机以图片方式输出。
所以“可变数据”的属性参数可以有:字体、颜色(黑白)、图片大小、GBK编码、默认数据、输入数据长度等。
对接平台的用户可按规则编程,调用平台语法解释API,由平台进行文字转图片生成特定打印机语言(CPCL、TSPL、ZPL、ESC)打印图片格式。
同理“固定数据”部分也可以视为“可变数据”处理。
不同打印语言的打印机脚本,是用户自定义按不同打印机语言编程的打印程序,用户调用平台的打印程序合成API,可完成将打印程序与可变数据部分合成,自动生成完整打印代码。发送到打印机完成打印。
平台通过语法和脚本,可以做到不同厂商不同打印语言的打印机的完全适配。做到硬件无关。
模板自定义语法
语法总览与基本参数说明
语法编码必须符合JSON数据格式要求。
上图语法举例如下:
{"background":{“width":500,"height":400, "color":[255,255,255], "rotate":0 },
"options":{ "independentImages":true },
"items":[
{ "item":"111","input":true,"label":"单位名:","type":"text","value":"","hint":"不多于8字","maxlength":16,
"props":{"left":10,"top":60,"color":[0,0,0],"fontSize":36,"fontFamily":"黑体","align":"center","width":336,"height":45},
"required":true,"enable":true },
{ "item":"120","input":true,"label":"留样品名:","type":"text","value":"","hint":"不多于8字","maxlength":16,
"props":{"left":10,"top":60,"color":[255,255,255],"fontSize":36,"fontFamily":"黑体",
"align":"center","width":320,"height":80},
"required":true,"enable":true },
{"item":"130","input":true,"label":"留样时间:","type":"radio","value":"today",
"desc":"日期宏变量:today当天yyyy.mm.dd/now当天时yyyy.mm.dd hh:mm",
"list":[["today","打印日期"],["now","打印时间"]],
"props":{"left":10,"top":70,"color":[0,0,0],"fontSize":16,"fontFamily":"黑体"},
"required":true,"enable":true
},
{ "item":"140","input":true,"label":"留样人:","type":"text","value":"","hint":"不多于4字","maxlength":8,
"props":{"left":10,"top":60,"color":[255,255,255],"fontSize":36,"fontFamily":"黑体",
"align":"center","width":320,"height":80},
"required":true,"enable":true }
]}
语法由两部分构成,
"background"部分定义底图大小,黑白、是否与底图合并。用于支持底图的打印。
"items"部分用于定义”可变数据“的属性。“可变数据”的支持类型有:汉字GBK编码、数字类型、图片类型、条形码类型、二维码类型、文字转图片类型、枚举选择类型、EXECL表格类型。
用户调用平台API,平台自动进行图片、文字的打印编码转换,如定义文字字体,API自动将输入的文字转成指定字体的图片打印数据。
文本编码定义举例
语法编码:
{ "item":"120","input":true,"label":"留样品名:","type":"text","value":"","hint":"不多于8字","maxlength":16,
"props":{"left":10,"top":60,"color":[255,255,255],"fontSize":36,"fontFamily":"黑体",
"align":"center","width":320,"height":80},
"required":true,"enable":true },
UI图:
属性说明:
属性 |
值 |
说明 |
"item" |
"120" |
可变数据序号,用于向打印脚本传递指定字段 |
"input" |
true |
是否需要输入 |
"label" |
"留样品名:" |
字段名,用于UI显示 |
"type" |
"text" |
数据处理类型 |
"value" |
"" |
默认值 |
"hint" |
"不多于8字" |
默认UI提示语 |
"maxlength" |
16 |
该字段最大长度,汉字占2个位置 |
"props" |
转图片属性定义 |
|
"left" |
10 |
在底图的位置、x轴值、单位为一个像素点,底图左上角坐标为0,0 |
"top" |
60 |
在底图的位置、Y轴值、单位为一个像素点,底图左上角坐标为0,0 |
"color" |
[255,255,255] |
黑白颜色,255为黑字白底 |
"fontSize" |
36 |
字体大小 |
"fontFamily" |
"黑体" |
字体 |
"align" |
"center" |
字体居中或左右对齐 |
"width" |
320 |
图片宽,单位为一个像素点 |
"height" |
80 |
图片高,单位为一个像素点 |
"required" |
true |
是否必填不能为空 |
"enable" |
true |
是否生效,无效则跳过该字段,不做任何处理 |
二维码条形码定义
语法编码:
{ "item":"160","input":true,"label":"二维码","type":"qrcode","value":"","hint":"输入或者扫码",
"props":{"left":10,"top":120,"color":[255,255,255],"width":200},
"required":true,"enable":true
}
UI图:
属性说明
"type":"qrcode",指定为二维码/条形码类型,其他定义与文本相同。
若采用微信小程序调用云平台开发,云平台会自动返回“扫码”按钮。其他方式调用可忽略返回值。
平台支持不同标准的二维码、条形码生成图片。但为减少平台计算量,最好只传递值到打印脚本,将二维码、条形码格式处理交由标签打印机处理。平台只处理标签机无法支持的二维码、条形码格式。
图片定义
语法编码:
{ "background":{ "width":560, "height":560, "color":[255,255,255], "rotate":0 },
"options":{ "independentImages":true },
"items":[
{ "item":"110","input":true,"label":"上传图片","type":"image-upload","value":"","hint":"上传图片",
"props":{"left":0,"top":0,"width":560,"height":560},
"required":true,"enable":true }]}
UI图
属性说明
"type":"image-upload",用于上传打印的图片。"width":560,"height":560定义图片大小为560像素*560像素,若上传的图片大小与此定义值不一致,调用云平台图片处理API时,API将自动压缩或裁剪为定义值大小。同时API会进行图片黑白化处理,为避免彩图打印时丢失主要信息,最好将彩图处理为黑白图后再上传。
汉字图片化与支持的字体
语法语法编码举例:
{
"background":{
"width":300,
"height":400,
"color":[255,255,255],
"rotate":0
},
"options":{
"independentImages":true
},
"items":[
{
"item":"610","input":true,"label":"茶名","type":"text","value":"","hint":"输入您的茶名","maxlength":10,
"props":{"left":10,"top":10,"color":[0,0,0],"fontSize":58,"fontFamily":"钟齐志莽行书", "showVertical":true,"align":"center","charInterval":9999,"width":96,"height":260},
"required":true,"enable":true
},
{
"item":"620","input":true,"label":"姓名","type":"text","value":"","hint":"输入您的姓名","maxlength":8,
"props":{"left":10,"top":60,"color":[0,0,0],"fontSize":32,"fontFamily":"庞门书法","showVertical":true,"align":"bottom","width":64,"height":168},
"required":true,"enable":true
}
]
}
编码说明
以上编码参数可通过调用云平台文字处理API,将输入的汉字转化成竖排文字图片。
"props":{"left":10,"top":10,"color":[0,0,0],"fontSize":58,"fontFamily":"钟齐志莽行书", "showVertical":true,"align":"center","charInterval":9999,"width":96,"height":260
其中"showVertical":true指定为竖排,不指定此参数、平台默认为文字横排
"align":"center" 文字居中对齐
"charInterval":9999 字间距为大小(9999为默认字间距)
"fontFamily":"钟齐志莽行书"指定文字字体
云平台现支持以下字体自动处理,需增字体请联系我们。
序号 |
字体 |
1 |
黑体 |
2 |
楷书粗体 |
3 |
行楷 |
4 |
沐瑶手写体 |
5 |
庞门书法 |
6 |
仿宋 |
7 |
楷书 |
8 |
思源黑粗体 |
9 |
思源黑超细 |
10 |
思源黑细 |
11 |
思源黑中 |
12 |
思源黑常规 |
13 |
思源宋粗 |
14 |
思源宋超细 |
15 |
思源宋加粗 |
16 |
思源宋细 |
17 |
思源宋半粗 |
18 |
楷书繁体 |
19 |
江西拙楷2.0 |
20 |
站酷仓耳渔阳体 |
21 |
站酷快乐体 |
22 |
站酷庆科黄油体 |
23 |
站酷小薇LOGO体 |
24 |
聪聪草书 |
25 |
硬笔行书 |
26 |
行书字体 |
生僻字繁体字处理
大多数免费手写字体库约收集4万字左右,可能有很多生僻字繁体字未收集。采用此类字库打印,易出现缺字现象。建议如“姓名”类字段输入,容易出现生僻字,请选择思源字库或黑体、楷体字库。
也可调用标签打印机内置GBK字库进行打印。
枚举类型/日期时间类型定义
语法举例
{"item":"130","input":true,"label":"留样时间:","type":"radio","value":"today",
"desc":"日期宏变量:today当天yyyy.mm.dd/now当天时yyyy.mm.dd hh:mm",
"list":[["today","打印日期"],["now","打印时间"]]}
编码说明
"type":"radio"为多选一枚举类型
当类型为枚举类型时,"value"值为today时,平台返回当前日期值。
日期格式为2020.06.16
当类型为枚举类型时,"value"值为now时,平台返回当前时间值。
时间格式为:2020.05.16 10:39
EXECL表输入定义
语法举例
{
"background":{ "width":500, "height":400, "color":[255,255,255], "rotate":0 },
"options":{
"independentImages":true
,"loopFileItem":"190"
,"loopFileDataBegin":"192"
,"loopFileDataEnd":"194"
},
"items":[
{"item":"190","input":true,"label":"表格","type":"file-upload","value":"","hint":"上传表格","required":true,"enable":true},
{"item":"192","input":true,"label":"打印起始行","type":"text","value":"1","desc":"","props":{"onlyText":true},"required":true,"enable":true},
{"item":"194","input":true,"label":"打印结束行","type":"text","value":"9999","desc":"","props":{"onlyText":true},"required":true,"enable":true},
{ "item":"120","input":false,"label":"商品名称","type":"text","value":"","hint":"不多于16字","maxlength":42,"source":"loopFile",
"props":{"left":10,"top":60,"color":[0,0,0],"fontSize":36,"fontFamily":"黑体","align":"center","width":168,"height":45,"onlyText":true},
"required":true,"enable":true
},
{ "item":"130","input":false,"label":"说明一","type":"text","value":"","hint":"不多于16字","maxlength":65,"source":"loopFile",
"props":{"left":10,"top":60,"color":[0,0,0],"fontSize":36,"fontFamily":"黑体","align":"center","width":168,"height":45,"onlyText":true},
"required":true,"enable":true
},
{ "item":"140","input":false,"label":"说明二","type":"text","value":"","hint":"不多于16字","maxlength":64,"source":"loopFile",
"props":{"left":10,"top":60,"color":[0,0,0],"fontSize":36,"fontFamily":"黑体","align":"center","width":168,"height":45,"onlyText":true},
"required":true,"enable":true
},
{ "item":"150","input":false,"label":"商品条码","type":"text","value":"","hint":"不多于16字","maxlength":62,"source":"loopFile",
"props":{"left":10,"top":60,"color":[0,0,0],"fontSize":36,"fontFamily":"黑体","align":"center","width":168,"height":45,"onlyText":true},
"required":true,"enable":true
},
{ "item":"160","input":false,"label":"零售价","type":"text","value":"","hint":"不多于16字","maxlength":62,"source":"loopFile",
"props":{"left":10,"top":60,"color":[0,0,0],"fontSize":36,"fontFamily":"黑体","align":"center","width":168,"height":45,"onlyText":true},
"required":true,"enable":true
}
]
}
UI图举例
编码说明
本例子中,要求输入的EXECL表第一行必须为字段名。本例子中
打印的标签图和EXECL表格式要求如下:
微信小程序蓝牙标签打印/标签云打印开放平台(2)相关推荐
- 【微信小程序控制硬件⑧ 】微信小程序以 websocket 连接阿里云IOT物联网平台mqtt服务器,封装起来使用就是这么简单!(附带Demo)
[微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...
- 【微信小程序控制硬件 第12篇-项目篇】微信小程序蓝牙控制硬件应如何开始动手?为您全面解析微信小程序蓝牙API的使用;(附带demo)
[微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...
- 【微信小程序控制硬件14 】 微信小程序蓝牙+WiFi双控制ESP32-C3应用示范;(附带Demo)
文章目录 一.前言 二.设备核心代码 2.1 蓝牙控制 2.2 WiFi控制 2.3 外设驱动 三.微信小程序核心代码 3.1 蓝牙搜索 3.2 蓝牙服务发现 四.感谢 另外,不要把我的博客作为学习标 ...
- 标签云打印/微信小程序蓝牙标签打印开放平台功能
微信小程序蓝牙标签打印/标签云打印开放平台(www.herro.cn),是在云端部署的云平台,支持开发者通过API调用完成标签蓝牙打印或标签云打印功能. 平台蓝牙打印模块支持各厂商各品牌蓝牙标签打印 ...
- 微信小程序蓝牙标签打印/标签云打印开放云平台(4)
微信小程序蓝牙标签打印/标签云打印开放云平台(下面简称"平台" www.herro.cn 技术服务TEL:15759216805),支持开发者通过API调用完成标签蓝牙打印或标签云 ...
- 微信小程序中识别html标签的方法
微信小程序中识别html标签的方法 前言 rich-text组件 前言 在后台接口返回的数据中有些会带有标签,在微信小程序中如何将其直接渲染在页面呢? rich-text组件 在微信小程序中有一个组件 ...
- 微信小程序蓝牙BLE开发实战——案例(二)
微信小程序蓝牙BLE开发实战(二) 上篇主要介绍在开发过程中应用到相关API操作.接下来介绍个人在项目开发中应用蓝牙BLE一些事情. 由于时间比较仓促, 有些注释没那么详细.请理解~写的不好欢迎各位大 ...
- 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ② 如何实现 微信小程序蓝牙控制 Ble Mesh模组 安信可TB02,全部开源!
本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小 ...
- 微信小程序蓝牙对接热敏打印机
更多文章请访问 深的个人博客 最近开发的一个小程序里需要对接热敏打印机打印小票,在此记录一下对接的过程 项目开发注意点: 1.因为项目中有多个页面的数据是需要进行打印的,为了保持蓝牙的连接状态和数据, ...
最新文章
- UPDATE STATISTICS 有何妙用?
- 《零基础免费学扩增子分析》视频课(含ppt及相应代码),无需转发,直接获取...
- 浏览Github必备的5款神器级别的Chrome插件
- [NOIP2006] 提高组 洛谷P1066 2^k进制数
- USTC English Club Note20171015(5)
- VMware虚拟机里面无法直接访问主机磁盘怎么办?
- solver.prototxt参数说明(三)
- liunx-mysql-password重置(初始化)
- java获取客服列表,java-从列表中获取处理案例的服务
- hdu 1542 Atlantis (线段树+扫描线)
- 《全唐诗》与《全宋词》
- P.Laguna/AUTOMATIC DETECTION OF WAVE BOUNDARIES IN MULTILEAD ECG SIGNALS VALIDATION WITH THE CSE DB
- 【sed 工具的使用】
- 【图像配准】基于matlab Harris+SIFT图像配准【含Matlab源码 1532期】
- 写读后感,获赠陈能技老师亲笔签名书《性能测试诊断分析与优化》中奖名单公布啦!...
- 开源大数据周刊-第90期
- 02-03-JSP-Maven-会话-MySQL事务
- webapp封装 苹果app证书
- LeCo-169. 多数元素
- 基于树莓派的流星雨监测系统(RMS)的搭建
热门文章
- Framebuffer之fset工具(二十八)
- MathType7永久激活码以及MathType如何嵌入到Word中
- android_app开发集成mob短信验证码功能
- Java猫叫老鼠跑人惊醒_关于猫叫、老鼠逃跑、人被惊醒的程序设计
- 阿里创作平台内容号怎么发布信息
- CSS实现水平居中、垂直居中、水平垂直居中
- 跨境电商ERP中的自动化 1.平台订单自动同步至本地
- JAVA 实现精确的加减乘除运算
- linux 查看 磁盘iops,linux 查看磁盘的iops
- 手电筒充放电管理芯片SM5401兼容HT4892 超低静态电流 低成本充放电管理芯片 移动电源芯片