1 简介
大家好我是费老师,市面上的开源票据设计&打印类项目层出不穷,对应所使用到的技术栈也不尽相同。而今天要给大家分享的开源票据设计&打印工具“Dash-Web-Print”,其非常新颖的完全基于Python技术栈实现了前端和后端,使得基于它进行二次开发及功能拓展非常的友好高效。
2 开源票据设计&打印工具Dash-Web-Print
2.1 项目源码获取
作为开源项目,“Dash-Web-Print”的项目源码已托管至Github和Gitee:
- Github仓库地址:https://github.com/qweytb/Dash-Web-Print
- Gitee同步仓库地址:https://gitee.com/yang-tianbao95/dash-web-print
因此可以通过git clone或直接从仓库下载压缩包获取项目源码:
# 从Github拉取源码
git clone https://github.com/qweytb/Dash-Web-Print.git
# 从Gitee拉取源码
git clone https://gitee.com/yang-tianbao95/dash-web-print.git
2.2 项目功能特性
“Dash-Web-Print”截至本文写作时,最新版本为0.1.2,虽然目前还处于早期版本快速迭代中,但其已具备一系列丰富的功能特性。
“Dash-Web-Print”旨在简化布局设计、定制和打印流程。它提供了一个直观的拖拽界面,用户可以通过拖拽组件(如横线、竖线、文本、矩形、表格和二维码)设计模板,并支持通过JSON数据动态填充内容。该应用适用于创建发票、标签和其他自定义文档,具备IP访问控制、浏览器兼容性检查以及多种打印选项(静默打印、弹窗打印和WebSocket打印)。
“Dash-Web-Print”核心功能如下:
- 纯Python开发:项目完全基于Python开发,只需会Python即可随心所欲二次开发
- 拖拽界面: 通过拖拽组件(如横线、文本、二维码)到画布上设计布局。
- 模板管理: 保存、加载和预览存储在数据库中的模板。
- 动态数据集成: 支持将 JSON 数据绑定到组件(如文本、表格、二维码)以实现动态内容渲染。
- 纸张大小定制: 支持标准尺寸(A4、A5、A4/3)和自定义尺寸。
- 组件编辑: 通过右侧表单调整组件属性(如位置、大小、内容)。
打印选项方面,“Dash-Web-Print”具体支持:
- 静默打印: 通过 WebSocket 服务器直接打印布局,无需用户交互。
- WebSocket 打印: 通过 WebSocket 服务器实时打印布局,无需用户交互。
- 弹窗打印: 在弹窗中生成预览以供手动打印。
- PDF 导出: 将布局转换为 PDF 格式(基于 base64 编码)。
- 打印机选择: 通过 HTTP API 获取并选择可用打印机。
安全与兼容性方面,“Dash-Web-Print”包含了:
- IP 白名单/黑名单: 根据客户端 IP 地址限制访问。
- 浏览器兼容性检查: 强制要求最低浏览器版本,阻止不支持的浏览器(如 IE)。
- 用户认证: 集成 Flask-Login 进行基本用户管理(当前硬编码为 admin 用户)。
下面是“Dash-Web-Print”内部分操作的演示截图:
票据设计示例:
打印控制示例:
打印预览示例:
打印目标选择示例:
更多项目介绍及功能演示请前往项目源码仓库了解更多:
- Github仓库地址:https://github.com/qweytb/Dash-Web-Print
- Gitee同步仓库地址:https://gitee.com/yang-tianbao95/dash-web-print
2.3 项目技术栈
“Dash-Web-Print”之所以可以实现纯Python高效实现应用的前后端,特别是本项目中核心的拖拉拽设计功能,得益于Python生态中的顶级开源全栈应用开发框架Dash,通过直接编写Dash应用逻辑实现各种复杂程度的前端页面及交互功能,配合Dash内置的Flask实现更多的应用拓展功能及服务,非常适合企业内部各种数据应用的快速开发: