模版可以高度定制、可以订阅、可编程,有完整的编辑页面、权限管理页面和日志系统,其中日志系统用于统计打印数据和辅助排查问题。
打印机可以通过手机、电脑等设备注册到云上,变成云打印机来实现远程打印的需求。
模版和编程部分在传输和使用过程中的安全性需要特别考虑和关注。
跨平台兼容性:模板使用的数据类型及可编程区使用的脚本需要考虑跨平台性。
打印机适配性:针对不同厂商的打印机需要制定不同的策略,并充分考虑后续接入的时效性问题。
人员管理系统:创建接入的应用(isv)、添加isv的管理及使用人员。
日志管理系统:用户手机打印过程上报的日志及各个应用打印量的分析数据。
模版管理系统:提供用于编辑、修改、复制和保存模板的页面,生成的模板数据保存在服务器端,其中包含的可编程区模板由编辑人员书写生成。
打印sdk:打印组件提供PC(目前支持Windows系统)打印客户端、移动端sdk(iOS和Android系统)和打印组件服务端sdk。
模板订阅模式:打印机模板来源分为两种,一种是完全自定义,另外一种是打印组件系统内置的模板。使用这些内置的模板时,应用管理者可以在模板管理系统订阅需要模板,不但可以订阅系统模板,也可以订阅别的应用存在的模板。
标准模板 - 由打印组件团队维护的电子面单标准模板
自定义模板 - 各个产线或ISV自定义的其他模板,如掌中通、快递超市等
自定义区 - 模板中可设置自定义区,供服务的订购方自定义打印内容。如标准模板里的自定义区可供商家打印发货的商品信息
打印项 - 将多个打印元素提取成打印项,可供拖放到自定义区使用。如ISV创建了“商品数量+宝贝简称+销售属性”的打印项,商家直接可将其放置自定义区打印这3条属性
模版绘制、下发和打印流程时序图:
简化模板订阅流程:简化应用管理者订阅模板的流程,通过清晰的界面和简单的操作,提高用户体验,引入一键订阅的功能,减少不必要的步骤。
面单编辑示例:
3.4.1 语言选定:Javascript
原因:解释性语言,兼容性好,支持PC、Android、iOS、Java等多端
风险:JS可以被注入修改等安全问题
安全性强化: 由于使用JavaScript作为可编程语言,安全性是一个重要关切点。采用服务器私钥生成和解析摘要的方式是一项不错的做法,但也需要考虑到未来可能出现的安全威胁,并随时更新安全策略。
3.4.2 模版可编程能力生成、编辑获取和打印时序图:
可编程能力示例:
打印组件SDK作用是:结合打印模板和打印数据生产能驱动打印机打印的指令,并通过串口或蓝牙等通道发送给打印机。
打印组件SDK分为四种:
组件服务端SDK:部署在打印组件服务器上,用于需要在线生成打印指令的系统使用
PC客户端SDK:部署在PC电脑上,通过串口等系统内部已添加的打印机连接打印机打印
移动端SDK:用于手机端使用,通过蓝牙发送打印指令给打印机
已适配打印机厂商:芝科、启锐、济强、汉印和鹭岛宸芯等市面上主流的便携打印机厂商。
客户端打印流程图:
打印日志系统用于打印收集端上的模版获取、蓝牙权限校验、cpcl指令生成机打印结果情况,统一收集上报,统计打印情况及问题分析定位。
日志收集流程图:
背景:在一线快递业务员使用的场景,有时打印机不在身边,有的网点配置的打印机有限,这就导致快递在上门取件时无能及时提供快递单号给客户。
介绍:云打印是一款基于打印组件开发一款产品,用于把便携打印机、桌面打印机和台式打印机等注册到云打印后台,实现打印机云在线,可以脱离快递员或商家客户的身边,实现远程打印机面单的能力。
具体流程:用户在PC端安装打印组件客户端、移动端安装云打印APP,在这些端上把已经连接的打印机注册到云打印服务端,并生成一个这台打印机(这时我们叫它云打印机)的二维码,用户在各个端操作时选择些打印机,然后把打印数据发送给云打印服务器,实现远程打印。
云打印流程:
基于打印组件的云打印服务系统已通过中通开放平台对外提供稳定服务。
目前公司内部主要产线都接入了打印组件的能力。