前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >仓库管理系统WMS的标签打印解决方案

仓库管理系统WMS的标签打印解决方案

原创
作者头像
:Darwin
发布2023-06-28 16:11:54
4940
发布2023-06-28 16:11:54
举报
文章被收录于专栏:WorkLogsWorkLogs

需求分析

  1. 多端:发起标签打印的终端有 App 和 Web
  2. 批量:除了单个打印,还需要支持后台自动批量打印
  3. 便携:仓库人员能随身携带打印机,出标签后直接贴到对应库位或物品上

调研标签机

  1. 云打印机如飞鹅云都是需要插电的,没有电池,无法在仓库随身携带;
  2. 汉印蓝牙标签打印机,无法支持Web端发起打印请求
  3. 最后选定 优博讯 UROVO K329 WIFI版。

Web触发打印方案分析

标签打印机有2种调用方式:

  • 驱动模式:在Windows上安装驱动,发送要打印的数据到打印机
  • 指令模式:将 tspl,cpcl或esc 指令通过蓝牙或者WIFI方式发送到打印机

使用驱动模式的话,App端无法发送数据,Web端也必须先生成图片或PDF,无法跳过浏览器的文件存储逻辑,也就无法实现后台静默自动打印。

使用指令模式,由于蓝牙距离限制,PC和打印机通过蓝牙通信是不稳定的,所以采用 WIFI 连接发送数据。

其实也可以主要用App蓝牙交互的逻辑,Web把数据推到队列,App轮询接口或者websockt连接,和前端同事讨论对App性能有影响。

另外考虑到工期和前端工作量问题,App端的打印调API来还是走Web转发打印的逻辑,后期可以实现App通过蓝牙发指令到打印机,这样会更稳定,毕竟WiFi信号离路由器远了也会变弱。

流程确认

  1. App和Web向队列写数据
  2. PC上运行一个打印数据转发程序 Printer.exe,向服务器请求打印数据
  3. PC程序 Printer.exe 向打印机发送打印指令数据

考虑到将 Rabbitmq 的配置写到exe程序里会有安全问题,所以还是才用接口轮询的方法,让 Printer.exe 每隔一秒去请求打印数据。

基于 Python 实现打印数据转发程序

主要实现以下几个功能:

  • 请求数据接口
  • 向标签机 IP:PORT 发送打印指令
  • 定时重复请求
  • 记录日志,清理7天前的日志文件
  • 使用 pyinstaller -F .\printer.py 打包成exe程序

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求分析
  • 调研标签机
  • Web触发打印方案分析
  • 流程确认
  • 基于 Python 实现打印数据转发程序
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档