一个基于 Spring Boot 和 Nuxt.js 的自助打印管理系统,适用于办公室、学校等多人共享打印场景。
- 多打印机管理:支持管理多台打印机,自动负载均衡
- 用户系统:用户注册、登录、钱包充值
- 文件管理:支持上传 PDF、Word、Excel 等格式文件,自动去重存储
- 在线支付:支持微信支付、支付宝支付,以及钱包余额支付
- 打印配置:支持设置打印份数、彩色/黑白、单双面、纸张大小
- 社区分享:用户可以分享文件到社区
- Java 25
- Spring Boot 4.0.3
- MyBatis-Plus
- Sa-Token
- MySQL
- Nuxt 4
- Vue 3
- TypeScript
- Tailwind CSS
- Nuxt UI
- CUPS(通用 Unix 打印系统)
- 对象存储(支持 S3 协议)
- JDK 25
- Node.js 18+
- MySQL 8.0+
- CUPS 打印服务
- 创建数据库:
CREATE DATABASE print_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 配置环境变量(或创建
.env文件):
DB_HOST=localhost
DB_PORT=3306
DB_NAME=print_system
DB_USERNAME=root
DB_PASSWORD=your_password
# CUPS 配置
CUPS_HOST=localhost
CUPS_PORT=631
# 支付配置
PAY_PID=your_pid
PAY_KEY=your_key
# 存储配置(可选 S3)
STORAGE_TYPE=local
UPLOAD_DIR=./uploads- 运行后端:
./gradlew bootRun- 安装依赖:
cd web
bun install- 运行开发服务器:
bun run devprinter_system/
├── src/main/java/ # 后端源码
│ ├── controller/ # REST API 控制器
│ ├── service/ # 业务逻辑层
│ ├── mapper/ # 数据访问层
│ ├── entity/ # 实体类
│ ├── dto/ # 数据传输对象
│ └── config/ # 配置类
├── web/ # 前端项目
│ ├── app/ # Nuxt 应用
│ │ ├── pages/ # 页面
│ │ ├── components/ # 组件
│ │ ├── middleware/ # 中间件
│ │ └── stores/ # Pinia 状态管理
│ ├── api/ # API 客户端
│ └── types/ # TypeScript 类型定义
└── else/ # 旧版 Python 原型(已废弃)
启动后端后访问 /swagger-ui.html 查看完整的 API 文档。
- Web 管理后台完善
- Android 客户端
- iOS 客户端
- 微信小程序
本项目采用 GNU Affero General Public License v3.0 许可证。
- 允许:查看、学习、修改源代码,分发副本
- 要求:修改后的版本必须以相同许可证开源,包括通过网络提供服务
- Copyleft:确保软件永远保持自由开源
详见 LICENSE 文件。