# tools-package **Repository Path**: naitata/tools-package ## Basic Information - **Project Name**: tools-package - **Description**: 一个功能丰富的在线工具集合,提供PDF处理、JSON格式化、Base64编解码、时间戳转换、图片格式转换等常用工具。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-19 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tools Package 一个功能丰富的在线工具集合,提供PDF处理、JSON格式化、Base64编解码、时间戳转换、图片格式转换等常用工具。 ## 功能特性 - **PDF工具** - PDF转图片:将PDF每一页转换为图片,支持自定义DPI和格式,打包为ZIP下载 - PDF转文本:提取PDF中的文本内容,支持在线预览和TXT文件下载 - PDF信息获取:获取PDF文件页数、大小等基本信息 - **JSON工具** - JSON格式化:美化JSON字符串,支持缩进显示 - JSON压缩:移除空白字符,压缩JSON体积 - **编码工具** - Base64编码:将文本转换为Base64编码 - Base64解码:将Base64字符串解码为原始文本 - **时间工具** - 时间戳转日期:支持秒级和毫秒级时间戳转换 - 日期转时间戳:支持多种日期格式输入 - **图片工具** - 图片格式转换:支持jpg、png、gif、webp、bmp格式互转 ## 技术栈 ### 后端 - Java 8 - Spring Boot 2.7.18 - Apache PDFBox 2.0.30 - Lombok ### 前端 - Vue 3.4 - Vue Router 4.3 - Axios 1.6 - Vite 5.2 - Tailwind CSS 3.4 ### 构建工具 - Maven 3.x - npm ## 项目结构 ``` tools-package/ ├── backend/ # 后端项目 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/tools/pkg/ │ │ │ │ ├── config/ # 配置类 │ │ │ │ ├── controller/ # 控制器 │ │ │ │ ├── service/ # 服务层 │ │ │ │ └── util/ # 工具类 │ │ │ └── resources/ │ │ │ └── application.yml # 应用配置 │ │ └── test/ │ └── pom.xml ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── components/ # 组件 │ │ ├── router/ # 路由配置 │ │ ├── utils/ # 工具函数 │ │ ├── views/ # 页面视图 │ │ ├── App.vue │ │ ├── main.js │ │ └── style.css │ ├── index.html │ ├── package.json │ ├── vite.config.js │ └── tailwind.config.js └── README.md ``` ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.6+ - Node.js 16+ - npm 8+ ### 安装步骤 1. **克隆项目** ```bash git clone https://github.com/your-username/tools-package.git cd tools-package ``` 2. **启动后端服务** ```bash cd backend mvn clean install mvn spring-boot:run ``` 后端服务将在 `http://localhost:8080` 启动。 3. **启动前端服务** ```bash cd frontend npm install npm run dev ``` 前端服务将在 `http://localhost:5173` 启动。 4. **访问应用** 打开浏览器访问 `http://localhost:5173` ## 开发指南 ### 前端开发 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build # 预览生产版本 npm run preview ``` ### 后端开发 ```bash cd backend # 编译项目 mvn clean compile # 运行测试 mvn test # 打包 mvn clean package # 运行 java -jar target/tools-package-1.0.0.jar ``` ## Docker部署 ### 构建镜像 ```bash # 构建后端镜像 cd backend docker build -t tools-package-backend:1.0.0 . # 构建前端镜像 cd frontend docker build -t tools-package-frontend:1.0.0 . ``` ### 使用Docker Compose 创建 `docker-compose.yml` 文件: ```yaml version: '3.8' services: backend: image: tools-package-backend:1.0.0 ports: - "8080:8080" volumes: - ./uploads:/app/uploads environment: - SPRING_PROFILES_ACTIVE=prod frontend: image: tools-package-frontend:1.0.0 ports: - "80:80" depends_on: - backend ``` 启动服务: ```bash docker-compose up -d ``` ## API接口文档 ### 基础路径 后端API基础路径:`http://localhost:8080/api` ### PDF接口 #### PDF转图片 ``` POST /api/pdf/to-image Content-Type: multipart/form-data 参数: - file: PDF文件(必填) - dpi: 图片DPI,默认150(可选) - format: 图片格式 png/jpg,默认png(可选) 响应:ZIP文件下载 ``` #### PDF转文本 ``` POST /api/pdf/to-text Content-Type: multipart/form-data 参数: - file: PDF文件(必填) - download: 是否下载TXT文件,默认false(可选) 响应: { "code": 200, "message": "PDF转文本成功", "data": { "filename": "example.pdf", "text": "提取的文本内容", "length": 1234 }, "timestamp": 1234567890 } ``` #### 获取PDF信息 ``` POST /api/pdf/info Content-Type: multipart/form-data 参数: - file: PDF文件(必填) 响应: { "code": 200, "message": "获取PDF信息成功", "data": { "fileName": "example.pdf", "fileSize": 102400, "pageCount": 10 }, "timestamp": 1234567890 } ``` ### JSON接口 #### JSON格式化 ``` POST /api/tool/json/format Content-Type: application/json 请求体:JSON字符串 响应: { "code": 200, "message": "JSON格式化成功", "data": "格式化后的JSON字符串", "timestamp": 1234567890 } ``` #### JSON压缩 ``` POST /api/tool/json/minify Content-Type: application/json 请求体:JSON字符串 响应: { "code": 200, "message": "JSON压缩成功", "data": "压缩后的JSON字符串", "timestamp": 1234567890 } ``` ### Base64接口 #### Base64编码 ``` POST /api/tool/base64/encode Content-Type: text/plain 请求体:原始文本 响应: { "code": 200, "message": "Base64编码成功", "data": { "original": "原始文本", "encoded": "Base64编码结果" }, "timestamp": 1234567890 } ``` #### Base64解码 ``` POST /api/tool/base64/decode Content-Type: text/plain 请求体:Base64字符串 响应: { "code": 200, "message": "Base64解码成功", "data": { "encoded": "Base64字符串", "decoded": "解码结果" }, "timestamp": 1234567890 } ``` ### 时间戳接口 #### 时间戳转日期 ``` POST /api/tool/timestamp/to-date Content-Type: text/plain 请求体:时间戳(秒或毫秒) 响应: { "code": 200, "message": "时间戳转日期成功", "data": { "timestamp": "1609459200", "date": "2021-01-01 00:00:00", "milliseconds": 1609459200000 }, "timestamp": 1234567890 } ``` #### 日期转时间戳 ``` POST /api/tool/timestamp/to-timestamp Content-Type: text/plain 请求体:日期字符串(支持格式:yyyy-MM-dd HH:mm:ss, yyyy-MM-dd, yyyy/MM/dd HH:mm:ss, yyyy/MM/dd) 响应: { "code": 200, "message": "日期转时间戳成功", "data": { "date": "2021-01-01 00:00:00", "timestamp": 1609459200000, "seconds": 1609459200 }, "timestamp": 1234567890 } ``` ### 图片接口 #### 图片格式转换 ``` POST /api/tool/image/convert Content-Type: multipart/form-data 参数: - file: 图片文件(必填) - targetFormat: 目标格式 jpg/png/gif/webp/bmp(必填) 响应:转换后的图片文件下载 ``` ### 健康检查 ``` GET /api/health 响应: { "status": "UP", "timestamp": 1234567890 } ``` ## 配置说明 ### 后端配置 (application.yml) ```yaml server: port: 8080 # 服务端口 spring: servlet: multipart: max-file-size: 100MB # 最大文件大小 max-request-size: 100MB # 最大请求大小 file: upload: path: ./uploads # 文件上传路径 ``` ### 前端配置 (vite.config.js) ```javascript export default defineConfig({ server: { port: 5173, // 开发服务器端口 proxy: { '/api': { target: 'http://localhost:8080', // 后端API地址 changeOrigin: true } } } }) ``` ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。