项目简介
基于 hiprint 、vue-plugin-hiprint 打印引擎的 Spring Boot 组件(starter),提供「打印模板管理 + 可选登录鉴权」能力,可作为一个独立模块引入任意 Spring Boot 项目,开箱即用,1分钟让你立即拥有可视化的打印模板设计器。
相关链接:
• 代码仓库:++++https://gitee.com/zkool/hiprint-spring-boot++++
• 演示地址:++++https://zkool.github.io/html/hiprint/index.html++++
• hiprint 官网:++++http://hiprint.io++++
• vue-plugin-hiprint:++++https://gitee.com/CcSimple/vue-plugin-hiprint++++
• 视频介绍:++++https://www.bilibili.com/video/BV1sQe86UE7b++++

上图为打印模板维护页面

上图为打印模板设计器
一、项目背景
在 Gitee 上观察到多个热门的打印开源项目,可见「Web 打印」是一个普遍且高频的诉求。作者手头维护着一个老项目,其打印功能实现得并不理想------缺乏可视化设计能力,业务或开发同学要调整一张打印模板时,往往要改代码、重新发版,过程繁琐、效率低下。
在新项目中,作者积累了使用 hiprint(一款优秀的开源打印引擎,配套 vue-plugin-hiprint 可视化设计器)的实战经验,切身感受到其前端设计器带来的便利。但原版 hiprint 主要聚焦前端,后端模板的存储、管理、权限等仍需开发者自行拼装。
于是,作者把这套「前端设计器 + 后端模板管理 + 鉴权」的最佳实践封装成一个开箱即用的 Spring Boot 组件(starter),回馈社区。相较于原版 hiprint,本项目只多做了「一步后端集成」:把模板的持久化、REST API、登录鉴权、自动装配统统内置,开发者引入依赖即可获得完整的打印能力。
二、技术架构
组件采用清晰的分层架构,各层职责单一、可独立替换,整体开箱即用:
|------------|---------------------------------------------------------------------------------------|
| 层级 | 职责 |
| 前端层 | hiprint 设计器(design.html)、模板管理页(index.html);utils.js 统一处理 token 携带与 401 静默 |
| 接入层 | Spring Boot 自动配置(HiPrintAutoConfiguration),引入依赖即装配,无需任何注解 |
| 业务层 | HiPrintTemplateController 提供模板 REST API;HiPrintTemplateService 负责 CRUD、乐观锁并发控制与审计字段填充 |
| 安全层 | HiPrintAuthInterceptor 统一拦截;HiPrintTokenService 抽象鉴权(内置登录 / 宿主 SSO 二选一) |
| 数据层 | Spring Data JDBC 持久化到关系型数据库 hiprint_template 表 |
数据流转:前端设计器导出 templateJson → 经 REST API 存入数据库 → 业务系统按需拉取模板 JSON → 交由 hiprint 渲染并打印;开启鉴权后,所有请求由拦截器统一校验 token 并写入操作人。
三、应用场景
适用于任何基于 Spring Boot 且需要打印能力的业务系统:
• ERP / WMS / 进销存:采购单、销售单、出库单、物流标签等票据打印;
• 电商 / 零售:电子面单、小票、发货单与退换货单;
• 政务 / 医疗 / 教育:各类报表、证照、通知书;
• 任何需要「可视化调整模板、免改代码」的场景。
开发者无需掌握 hiprint 内部细节,业务人员即可通过设计器自助调整版式,修改打印模板不再依赖发版。
四、创新点
1.后端一体化封装:相比偏前端的原版 hiprint,本项目补齐后端模板管理、持久化与鉴权,形成前后端一体的开箱方案。
2.模板持久化与版本管理:模板入库,支持分页查询、详情、增删改;乐观锁防止并发覆盖冲突。
3.灵活可插拔的安全架构:内置账号密码登录(默认关闭,零侵入)与宿主 SSO(实现 HiPrintTokenService 即接管)无缝切换。
4.真实操作人审计:开启鉴权时,服务端从 token 解析真实用户名自动写入 createBy/updateBy,杜绝客户端伪造操作人。
5.零配置自动装配:starter 即引即用,无需任何额外注解。
6.标准化发布与双版本:已发布 Maven Central,提供 Spring Boot 2 / 3 双版本 artifact,便于不同技术栈接入。
五、总结
hiprint-spring-boot 把「前端设计器 + 后端模板管理 + 鉴权」的最佳实践沉淀为一个轻量、可插拔的 Spring Boot 组件,降低了 Web 打印的集成门槛。项目已开源并以 MIT 协议发布,欢迎社区共建。