网站首页 > 精选文章 正文
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 架构,简化环境配置。
猜你喜欢
- 2025-09-12 本地部署+低成本!这款开源AI音视频转文档工具火了
- 2025-09-12 AI一键生成高清短视频,这个开源神器让内容创作起飞!
- 2025-09-12 挖到一款逆天跨平台翻译神器,功能直接拉满!
- 2025-09-12 第二讲,ComfyUI 安装教程:小白也能轻松搞定
- 2025-09-12 前端开发不想写重复代码?Open Lovable 1 秒克隆网站!
- 2025-09-12 magnet磁力搜索小工具_2021简单好用磁力搜索
- 2025-09-12 小白也能上手!手把手教你电脑部署DeepSeek,用AI工具提高生产力
- 2025-09-12 Windows 本地部署 LangChain 完整教程
- 2025-09-12 如何搭建一个git服务器?_如何搭建自己的git服务器
- 2025-09-12 0. esp32开发之ubuntu环境搭建_esp8266 linux开发环境搭建
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)