# 年糕工具 一站式文件处理工具箱,支持 PDF、Word、Excel、图片的格式转换、编辑和处理。 ## 功能特性 ### PDF 工具 - PDF 瘦身(压缩优化) - PDF 转图片 - PDF 转 Word / Excel / HTML / Markdown - PDF 提取文本 - PDF 合并 - PDF 分割(按页码范围) - PDF 旋转 - PDF 添加水印 - 文本 / Markdown / HTML 转 PDF ### 图片工具 - 图片格式转换(JPEG / PNG / GIF / BMP / TIFF) - 图片压缩(预设:高质量 / 中等 / 小文件 / 极小) - 图片调整大小 - 图片旋转 - 图片裁剪 - 灰度处理 - 亮度 / 对比度 / 饱和度调节 - 锐化 / 模糊 / 反色 - 背景去除 - 图片转 PDF ### 其他 - Word 转 PDF - Excel 转 CSV / JSON - 运行日志(支持日期筛选) ## 技术栈 - **后端**: Go + Wails v2 - **前端**: Vue 3 + Element Plus + Vite - **PDF 处理**: pdfcpu(纯 Go) - **图片处理**: imaging - **文本渲染**: gopdf ## 开发环境 ### 前置条件 - Go 1.25+ - Node.js - Wails CLI: `go install github.com/wailsapp/wails/v2/cmd/wails@latest` ### 开发模式 ```bash wails dev ``` ### 打包构建 ```bash .\build.ps1 ``` 构建产物位于 `build\bin\年糕工具.exe`(单文件,MuPDF DLL 已嵌入)。 ### 手动构建 ```powershell # 1. 生成绑定(nofitz 避免 DLL 依赖检查) wails build -tags nofitz # 2. 复制 DLL 到构建目录(嵌入用) Copy-Item public\MuPDFLib.dll build\bin\libmupdf.dll # 3. 最终构建(skipbindings 跳过重新生成) wails build -skipbindings # 4. 重命名 Copy-Item build\bin\xk.exe "build\bin\年糕工具.exe" ``` ## 项目结构 ``` ├── main.go # 应用入口 ├── app.go # App 生命周期 ├── handlers.go # 文件处理 handler(IPC 接口) ├── services/ │ ├── pdf_service.go # PDF 处理(pdfcpu) │ ├── image_service.go # 图片处理(imaging) │ ├── word_service.go # Word 处理 │ └── excel_service.go # Excel 处理 ├── frontend/src/ │ ├── App.vue # 根组件 │ ├── components/ │ │ ├── ToolView.vue # 工具主页面 │ │ ├── HomeView.vue # 首页 │ │ ├── SettingsView.vue # 设置 + 日志查看 │ │ ├── image/ # 图片工具组件 │ │ └── pdf/ # PDF 工具组件 │ └── router/index.js # 路由配置 ├── public/ │ └── MuPDFLib.dll # MuPDF 库(嵌入到 exe) └── build.ps1 # 构建脚本 ``` ## 日志 运行日志存储在 exe 同级 `logs/` 目录下,按日期分文件(`YYYY-MM-DD.log`)。 可在设置页面查看日志并按日期筛选。 ## 许可证 MIT