自定义标签打印系统设计方案

59 阅读2分钟

需求

  1. 支持表格的绘制(所见即所得的可视化界面)
  2. 支持图形码(条形码、二维码)的设置
  3. 支持数据接口调用
  4. 支持调用打印驱动打印
  5. 内置一些常见标签尺寸
  6. 附加功能:模板文件同步
  7. 集中式与分布式集成

设计

打印模板设计器

  1. 表格的绘制及变量的定义
  2. 条形码、二维码的设置

打印服务程序

  1. 数据接收
  2. 基于模板生成打印文件
  3. 调用打印机打印
  4. 打印历史数据

技术选型

  • 自定义表格工具:采用SVG设计表格;或采用pyfpdf2的template绘制
  • PDF文档生成工具:pyfpdf2可以将SVG添加到pdf文件,并绘制文字, 支持Code39条形码
  • 图形码工具:python和js各类图形码库
  • 打印服务应用框架:Flask/FaskAPI
  • 模板管理器框架:根据集成的应用系统选择或采用桌面端

设计思路

方案一:

  1. 模板设计器:先用SVG工具绘制出模板,并将变量等配置数据可保存到数据库或文件
  2. 打印服务程序:接收数据
  3. 打印服务程序:采用fpdf2把svg文件添加到文档中,添加变量对应的内容及图形码
  4. 打印服务程序:生成PDF,调用打印机打印

方案二:

  1. 模板设计器:设计fpdf.Template的图形设计器,数据可以json、csv等格式便于存储
  2. 打印服务程序:接收json数据
  3. 打印服务程序:通过parse_json()解析模板
  4. 打印服务程序:生成PDF,调用打印机打印

难点或重点

  1. SVG方式:表格的可视化绘制,可基于svgeditor二次开发。
  2. JSON方式:采用WebUI设计
  3. 模板设计器中各种类型的图形码的绘制、实时展示