企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

开源文件预览与Office在线编辑的强大解决方案

wudianyun 2025-09-12 04:19:11 精选文章 3 ℃




kkFileViewOfficeEdit 是一个基于 Spring Boot 框架开发的文件在线预览和 Office 文档在线编辑解决方案。它是 kkFileView
https://github.com/kekingcn/kkFileView)的衍生项目,专注于提供更强大的 Office 文档编辑功能,同时保留了原项目强大的文件预览能力。项目使用 Java 开发,采用 Apache-2.0 许可证,支持多种文件格式的在线预览和 Office 文档的在线编辑,适合企业或个人搭建文档管理系统。

该项目通过集成 OpenOfficeLibreOffice,结合 Jodconverter 库,实现文档的预览和转换功能,同时支持通过回调机制保存编辑后的文档。它的设计目标是简单易用、易于部署,并提供 REST API 以便于与其他系统集成。

核心功能

  1. 文件在线预览
  2. 支持主流 Office 文档格式(如 doc、docx、xls、xlsx、ppt、pptx)以及其他文件类型(如 PDF、TXT、ZIP、RAR、图片、音视频等)。
  3. 支持特殊格式文件,如 OFD(国产类似 PDF 格式)、XMind、DWG、3D 模型文件等。
  4. 提供图片预览功能,支持翻转、缩放、镜像等操作。
  5. 支持多页 TIFF 文件的 PDF 和 JPG 转换,以及多页在线预览。
  6. Office 文档在线编辑
  7. 支持 Word、Excel 和 PPT 文件的在线编辑。
  8. 编辑后的文档可以通过回调地址保存到指定服务器,适合与现有系统集成。
  9. 通过 URL 参数传递文件地址和回调地址,编辑完成后返回新生成的文档下载地址。
  10. 易于扩展
  11. 项目提供了抽象的文件预览接口,开发者可以轻松扩展支持更多文件格式。
  12. 支持 REST API,方便与其他系统对接。
  13. 安全性和配置
  14. 支持文件加密预览(如基于 userToken 缓存的加密 Word、Excel、PPT 文件)。
  15. 提供高风险文件上传限制(如禁止上传 EXE 文件)。
  16. 新增预览文件 host 黑名单机制,增强安全性。
  17. 其他优化
  18. 支持 GZIP 压缩,优化文件传输效率。
  19. 支持 ARM64 架构的 Docker 镜像,适配更多部署环境。
  20. 优化了 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 用于页面渲染

快速开始

  1. 拉取代码
  2. git clone https://github.com/YiJiuSmile/kkFileViewOfficeEdit.git
  3. 配置环境
  4. 确保安装 Java 8 及以上版本。
  5. Windows 下已内置 LibreOffice,Linux 下会自动安装,Mac OS 需要手动安装。
  6. (可选)配置 Redis 用于缓存。
  7. 修改配置文件(如 application-prod.properties),设置文件存储路径:
  8. file.dir=C:/Users/yourname/Desktop/dev/
  9. 运行项目
  10. 运行 server/src/main/java/cn/keking/ServerMain.java 的 main 方法。
  11. 服务启动后,访问 http://localhost:8012/,即可看到项目界面。
  12. 使用示例
  13. 预览文件
  14. http://127.0.0.1:8012/onlinePreview?url=http://example.com/1.doc
  15. (注意:URL 需要进行编码)
  16. 编辑文件
  17. http://127.0.0.1:8012/onlineEdit?callBack=localhost:8080/saveCallBack&url=http://example.com/demo.docx&fileId=yourId
  18. 编辑完成后,回调地址会收到新生成的文档下载地址。

注意事项

  • 安全性问题:项目存在一些已知的漏洞(如任意文件读取、删除、SSRF),建议在生产环境中使用最新版本并配置黑名单机制。
  • URL 编码:传递的文件地址和回调地址需要进行 URL 编码,以避免解析错误。
  • 部署建议:推荐使用 Docker 部署,支持 ARM64 和 x86 架构,简化环境配置。
最近发表
标签列表