onlyoffice实现office文件在线编辑保存
一、简介
onlyoffice是开源的在线文档编辑软件,支持主流的office格式,可实现文档在线编辑保存,多人协作编辑等场景,是目前我用过的功能最完善且强大的在线office编辑软件;
二、安装onlyoffice
这里仅介绍docker安装
- 简单运行查看
sudo docker run -i -t -d -p 80:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
这是简单的运行,其中的jwt密钥要保存好,后续生成token需要用,运行后,访问http://127.0.0.1
即可打开本地onlyoffice服务
在首页上有测试案例启用方法,完全按照命令执行即可,win下不需要加sudo;
按照命令执行,即可启用测试案例,启用后,点击GO TO TEST EXAMPLE
按钮,跳转至测试案例页面,在该页面可以测试onlyoffice的功能;
在测试案例中,可以简单体验下onlyoffice的基本功能;
注意
: 官方测试案例有个bug,就是必须使用80端口,因为它前端写死了自己的端口号,因此docker启动时只能使用-p 80:80
,目前的版本是这样的;
- 标准安装
sudo docker run -i -t -d -p 80:80 --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql \
-e TZ=Asia/Shanghai
-e JWT_ENABLED=false onlyoffice/documentserver
- logs: 日志文件;
- data: https证书文件;
- lib/onlyoffice: 文档缓存目录;
- postgresql: 数据库目录
- JWT_ENABLED=false 关闭JWT Token验证,由于JWT Token的生成逻辑比较复杂,对payload有格式要求(必须跟配置保持一致),容易出错,且不能由前端生成(密钥不能保存在前端),而且我这是个小项目,因此没有启用。
三、嵌入onlyoffice
3.1 html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>文档在线</title>
</head>
<body style="margin: 0px;">
<div style="width:100%;height:100vh;">
<div id="placeholder"></div> <!-- 实际渲染位置 -->
</div>
</body>
<script th:src="${onlyOfficeUrl}+'/web-apps/apps/api/documents/api.js'"></script>
<script th:inline="javascript">
const DocumentType = Object<