# toolbox **Repository Path**: au2/toolbox ## Basic Information - **Project Name**: toolbox - **Description**: 工具箱 图片处理工具,支持:A4扫描件标准化 / 印章尺寸转换 / PDF处理 / 水印功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-23 - **Last Updated**: 2026-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工具箱 图片处理工具,支持:A4扫描件标准化 / 印章尺寸转换 / PDF处理 / 水印功能 --- ## 一、项目结构 ``` toolbox/ ├── pom.xml ├── README.md └── src/main/ ├── java/com/toolbox/ │ ├── ToolboxApplication.java # 启动类 │ ├── controller/ │ │ └── ToolboxController.java # 控制器(所有接口) │ └── service/ │ ├── FileService.java # 文件存储 + 24小时自动清理 │ ├── ImageService.java # A4画布缩放 + 灰度转换 │ └── StampService.java # 印章按宽度等比缩放 └── resources/ ├── application.properties # 端口配置 └── templates/ ├── index.html # 首页(工具列表) ├── a4.html # A4扫描件标准化 ├── stamp.html # 印章尺寸转换 ├── download.html # 下载页 └── error.html # 错误页 ``` --- ## 二、技术栈 - Java 17+ - Spring Boot 3.2 - Java 2D Graphics API(原生,无额外图片处理依赖) - Thymeleaf(页面模板) - 文件存储:`toolbox_files/`(临时目录,24小时自动清理) --- ## 五、运行方式 ### 1. 打包 ```bash mvn clean package -DskipTests ``` ### 2. 开放防火墙端口 ```bash sudo firewall-cmd --zone=public --add-port=8447/tcp --permanent sudo firewall-cmd --reload sudo firewall-cmd --zone=public --list-ports ``` ### 3. 部署启动 ```bash # 停止旧进程 kill -9 $(ps -ef | grep toolbox | grep -v grep | awk '{print $2}') # 后台启动 nohup java -jar Toolbox-1.0.0.jar & ``` 启动后访问:**http://服务器IP:8447** --- ## 六、工具说明 ### 工具1:A4扫描件标准化 **路由:** `/a4` **输入:** JPG / PNG 合同扫描件 **输出:** 标准 A4 300DPI 图像(2480 × 3508 像素,PNG格式) **参数:** - `file` — 上传图片文件 - `grayscale` — 是否转为黑白(`true`/`false`,默认 `true`) **处理流程:** 1. 可选灰度转换(`ColorConvertOp`) 2. 等比缩放,完整放入 A4 画布 3. 居中绘制,白色背景 4. 双三次插值,文字清晰 **输出文件名:** `原名_年月日时分秒.png` --- ### 工具2:印章尺寸转换 **路由:** `/stamp` **输入:** PNG / JPG 印章图片 **输出:** 按真实宽度等比缩放后的 PNG(透明通道保留) **参数:** - `file` — 上传印章图片 - `width` — 真实宽度(厘米,保留两位小数) **处理流程:** 1. 以宽度为基准计算目标像素(21cm = 2480px) 2. 等比缩放高度 3. 双三次插值,保留透明背景 **计算公式:** `目标像素宽度 = 宽度(cm) × (2480 / 21)` **输出文件名:** `原名_宽度cm_w_年月日时分秒.png` **示例:** 宽度 4.05cm → 478px(打印真实 4.05cm) --- ### 文件存储说明 - 原始图片和转换后图片保存在 `toolbox_files/` 目录 - 每天凌晨 3 点自动清理超过 24 小时的文件 - 隐私声明:图片仅在服务器内存中处理,下载后自动过期 --- ## 七、接口列表 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/` | 首页(工具列表) | | GET | `/a4` | A4扫描件标准化页面 | | POST | `/a4/upload` | A4转换(form-data: file, grayscale) | | GET | `/stamp` | 印章尺寸转换页面 | | POST | `/stamp/upload` | 印章缩放(form-data: file, width) | | GET | `/file/{id}` | 下载文件(直接下载) | --- ## 八、后续功能规划 - [ ] PDF 转图片 - [ ] 批量加水印 - [ ] PDF 合并/拆分