cover_image

快递面单动态模版打印解决方案

客户管理产研部 科技中通
2023年12月13日 02:27

图片



图片


随着公司电子面单化的普及,公司各个产线对自定义打印模版进行打印的需求日益强烈,希望能有一套从模板设计、打印内容渲染到多端打印整个流程的解决方案,整个方案主要分为人员管理系统、日志管理系统、模版管理系统、打印组件SDK、日志系统和云打印系统。




图片


  • 模版可以高度定制、可以订阅、可编程,有完整的编辑页面、权限管理页面和日志系统,其中日志系统用于统计打印数据和辅助排查问题。


  • 打印机可以通过手机、电脑等设备注册到云上,变成云打印机来实现远程打印的需求。

  • 模版和编程部分在传输和使用过程中的安全性需要特别考虑和关注。

  • 跨平台兼容性:模板使用的数据类型及可编程区使用的脚本需要考虑跨平台性。

  • 打印机适配性:针对不同厂商的打印机需要制定不同的策略,并充分考虑后续接入的时效性问题。

 



图片


  • 人员管理系统:创建接入的应用(isv)、添加isv的管理及使用人员。


  • 日志管理系统:用户手机打印过程上报的日志及各个应用打印量的分析数据。

  • 模版管理系统:提供用于编辑、修改、复制和保存模板的页面,生成的模板数据保存在服务器端,其中包含的可编程区模板由编辑人员书写生成。


  • 打印sdk:打印组件提供PC(目前支持Windows系统)打印客户端、移动端sdk(iOS和Android系统)和打印组件服务端sdk。

  • 模板订阅模式:打印机模板来源分为两种,一种是完全自定义,另外一种是打印组件系统内置的模板。使用这些内置的模板时,应用管理者可以在模板管理系统订阅需要模板,不但可以订阅系统模板,也可以订阅别的应用存在的模板。

 

整体打印流程:首先业务方接入端上(如:PC、APP)SDK,并在打印组件人员管理系统申请应用(isvcode),然后在模板管理系统进行模板绘制、保存和发布上线。最后在端上初始SDK时绑定isvcode,当用户在操作页面选定好打印的原始数据提交到打印组件,打印组件sdk内部根据模版和原始数据动态生成打印所需的cpcl指令,然后发送给打印机打印出快递面单,回传打印结果给业务方。在模板生成和打印过程中sdk会记录相关数据行程日志,并统一上报到日志系统。



图片


定义:打印模板是一套用于描述打印展示内容和样式的模板文件,其定义了一套标准,包括打印标记语言和JavaScript动态代码嵌入规范,模板是串起整个打印链路的核心。打印组件通过将数据与模板进行结合,产出静态数据文件,并渲染后驱动打印机完成打印动作。



图片


  • 标准模板 - 由打印组件团队维护的电子面单标准模板


  • 自定义模板 - 各个产线或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,在这些端上把已经连接的打印机注册到云打印服务端,并生成一个这台打印机(这时我们叫它云打印机)的二维码,用户在各个端操作时选择些打印机,然后把打印数据发送给云打印服务器,实现远程打印。


  • 云打印流程:

 

图片


 

 

图片


  •  基于打印组件的云打印服务系统已通过中通开放平台对外提供稳定服务。


  • 目前公司内部主要产线都接入了打印组件的能力。

 


 

图片


通过对现有设计方案的优化,我们使其更具智能性、可扩展性和用户友好性,以适应未来数字化转型的需求。未来的发展方向包括引入AI技术提升设计和预测能力,升级日志系统为预测性分析平台,以及推动云打印系统演变为生态共享平台。公司在这一方案中扮演着技术引领者和合作创新平台的角色,助力行业数字化转型,提供全球化用户体验,并通过前瞻性设计保障安全性。这不仅仅是对内部产线的升级,更是为公司在数字时代的战略定位奠定基础,促使公司成为行业的技术引领者和创新推动者。




图片

图片

继续滑动看下一个
科技中通
向上滑动看下一个