hiprint-spring-boot打印组件介绍

项目简介

基于 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 协议发布,欢迎社区共建。

相关推荐
BLUcoding16 分钟前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
yuniko-n32 分钟前
【JUC】Lock 和 synchronzied 锁
java
西柚小萌新39 分钟前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛41 分钟前
cpp学习笔记--常量指针
java·开发语言·算法
java资料站1 小时前
二、Spring AI Alibaba · ChatModel
java·windows·spring
十年Java程序媛1 小时前
Java 接口和抽象类对比|Java8 新特性,抛弃老旧八股,正确选型
java·spring boot·后端
caoerzhong1 小时前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源
用户3721574261351 小时前
Java 合并 PDF 文件:完整合并、指定页面合并与流合并
java
for_ever_love__2 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
java资料站2 小时前
五、Spring AI Alibaba · Memory · Saver(短期会话)
java·spring·microsoft