- 时间:2025-12-03 22:27 作者: 来源: 阅读:1
- 扫一扫,手机访问
摘要:kkFileViewOfficeEdit 是一个基于 Spring Boot 框架开发的文件在线预览和 Office 文档在线编辑解决方案。它是 kkFileView(https://github.com/kekingcn/kkFileView)的衍生项目,专注于提供更强劲的 Office 文档编辑功能,同时保留了原项目强劲的文件预览能力。项目使用 Java 开发,采用 Apache-2.0 许可


kkFileViewOfficeEdit 是一个基于 Spring Boot 框架开发的文件在线预览和 Office 文档在线编辑解决方案。它是 kkFileView(
https://github.com/kekingcn/kkFileView)的衍生项目,专注于提供更强劲的 Office 文档编辑功能,同时保留了原项目强劲的文件预览能力。项目使用 Java 开发,采用 Apache-2.0 许可证,支持多种文件格式的在线预览和 Office 文档的在线编辑,适合企业或个人搭建文档管理系统。
该项目通过集成 OpenOffice 或 LibreOffice,结合 Jodconverter 库,实现文档的预览和转换功能,同时支持通过回调机制保存编辑后的文档。它的设计目标是简单易用、易于部署,并提供 REST API 以便于与其他系统集成。
核心功能
- 文件在线预览:
- 支持主流 Office 文档格式(如 doc、docx、xls、xlsx、ppt、pptx)以及其他文件类型(如 PDF、TXT、ZIP、RAR、图片、音视频等)。
- 支持特殊格式文件,如 OFD(国产类似 PDF 格式)、XMind、DWG、3D 模型文件等。
- 提供图片预览功能,支持翻转、缩放、镜像等操作。
- 支持多页 TIFF 文件的 PDF 和 JPG 转换,以及多页在线预览。
- Office 文档在线编辑:
- 支持 Word、Excel 和 PPT 文件的在线编辑。
- 编辑后的文档可以通过回调地址保存到指定服务器,适合与现有系统集成。
- 通过 URL 参数传递文件地址和回调地址,编辑完成后返回新生成的文档下载地址。
- 易于扩展:
- 项目提供了抽象的文件预览接口,开发者可以轻松扩展支持更多文件格式。
- 支持 REST API,方便与其他系统对接。
- 安全性和配置:
- 支持文件加密预览(如基于 userToken 缓存的加密 Word、Excel、PPT 文件)。
- 提供高风险文件上传限制(如禁止上传 EXE 文件)。
- 新增预览文件 host 黑名单机制,增强安全性。
- 其他优化:
- 支持 GZIP 压缩,优化文件传输效率。
- 支持 ARM64 架构的 Docker 镜像,适配更多部署环境。
- 优化了 Office 进程关闭日志记录和 Windows 环境中 Office 组件查找逻辑。
技术栈
- 后端:Spring Boot(版本 2.4.2)
- 文件转换:Jodconverter(版本 4.4.6),依赖 OpenOffice 或 LibreOffice
- 缓存:Redisson(版本 3.2.0,可选 Redis)
- 依赖管理:Maven
- 其他库:PDFBox(3.0.2)、Apache Commons IO、XStream 等
- 前端:Freemarker 用于页面渲染
快速开始
- 拉取代码:
- git clone https://github.com/YiJiuSmile/kkFileViewOfficeEdit.git
- 配置环境:
- 确保安装 Java 8 及以上版本。
- Windows 下已内置 LibreOffice,Linux 下会自动安装,Mac OS 需要手动安装。
- (可选)配置 Redis 用于缓存。
- 修改配置文件(如 application-prod.properties),设置文件存储路径:
- file.dir=C:/Users/yourname/Desktop/dev/
- 运行项目:
- 运行 server/src/main/java/cn/keking/ServerMain.java 的 main 方法。
- 服务启动后,访问 http://localhost:8012/,即可看到项目界面。
- 使用示例:
- 预览文件:
- http://127.0.0.1:8012/onlinePreview?url=http://example.com/1.doc
- (注意:URL 需要进行编码)
- 编辑文件:
- http://127.0.0.1:8012/onlineEdit?callBack=localhost:8080/saveCallBack&url=http://example.com/demo.docx&fileId=yourId
- 编辑完成后,回调地址会收到新生成的文档下载地址。
注意事项
- 安全性问题:项目存在一些已知的漏洞(如任意文件读取、删除、SSRF),提议在生产环境中使用最新版本并配置黑名单机制。
- URL 编码:传递的文件地址和回调地址需要进行 URL 编码,以避免解析错误。
- 部署提议:推荐使用 Docker 部署,支持 ARM64 和 x86 架构,简化环境配置。