代码拉取完成,页面将自动刷新
同步操作将从 TongHui/Spring-Boot-onlyOffice 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
springboot集成onlyOffice的实现。在参考网络上的资料结合自身实际情况总结,让集成oo方便快捷。 封装了oo服务的API和统一了配置。
方法名称 | 参数 | 参数说明 | 返回值 |
---|---|---|---|
openDocument() | Map<String,Object> map | 文件数据信息 { 必填 fileId 必填 fileName 必填 fileType 必填 fileSize 可用携带其它值 } |
{ "editorConfig": { "mode": "edit", "customization": { "feedback": { "visible": false }, "help": false, "goback": { "blank": false }, "macros": false, "autosave": false, "comments": false, "review": {}, "hideRightMenu": true, "anonymous": { "request": false }, "forcesave": true, "logo": {}, "hideNotes": true }, "plugins": { "pluginsData": [], "autostart": [] }, "callbackUrl": "http://172.31.240.1:9090/onlyOffice/save", "lang": "zh-CN", "user": { "name": "TongHuic7bba5", "id": "c7bba5" } }, "docServiceApiUrl": "http://172.31.240.1:8886/web-apps/apps/api/documents/api.js", "documentType": "word", "document": { "permissions": { "edit": true, "chat": false, "review": false }, "title": "fdfs.docx", "fileType": "docx", "key": "63f560ec03a94654b10cd4fdeebec05a", "url": "http://172.31.240.1:9090/download/09cee8767dd3476280fa865bacfaf213", "info": { "sharingSettings": [{ "isLink": true, "permissions": ["Full Access"], "user": "TongHuic7bba5" }], "created": "2023-08-05 21:38:25" } }, "type": "desktop", "token": "" } |
String mode | 打开方式 edit view |
||
boolean collaborativeEditing | 是否协同编辑 | ||
handlerStatus() | JSONObject jsonObject | onlyOffice 回调传来的值。 https://api.onlyoffice.com/editors/callback |
|
save():触发保存回调。 | String key | 是openDocument()返回值中的key | String : 提示信息 |
String userId | 用户Id | ||
converted() | String filetype | 文件类型 | 转换后的文件下载地址 |
String fileId | 文件Id | ||
String outputtype | 转化类型 | ||
String title | 转换后的文件名称 | ||
String password | 文档密码 |
注意:
autosave
/forcesave
参数为默认值时有效 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.25</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
<dependency>
<groupId>com.inversoft</groupId>
<artifactId>prime-jwt</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
定义关键接口(oo服务回调使用) 重要
1.保存接口
参考:demo/controller/IndexController.saveFile()
对应配置文件参数:oo.call-back-url
回调状态
0 - 找不到具有密钥标识符的文档
1 - 正在编辑文档(打开文件回调)
2 - 文档已准备好保存
3 - 发生文档保存错误
4 - 不作任何更改就关闭文档(关闭回调)
6 - 正在编辑文档,但保存当前文档状态(保存回调)
7 - 强制保存文档时发生错误
2.下载文件地址
参考:demo/controller/IndexController.download()
对应配置文件参数:oo.download-file
对应openDocument()方法返回值中的 document.url
打开文件后oo服务要下载对应的文件
实现SaveFileProcessor类
参考:demo.service.DemoService
方法名称 | 方法说明 | 参数 | 参数说明 | 返回值 |
---|---|---|---|---|
saveBeforeInitialization() | 保存前置方法 | Map<String, Object> map | 在openDocument()方法中传入的文件数据信息 | |
byte[] bytes | 文件二进制数据 | |||
String fileExtension | 文件后缀 | |||
save() | 保存方法,实现自己的保存逻辑 | Map<String, Object> map | 在openDocument()方法中传入的文件数据信息 | Map<String, Object> 更新内存中的信息 |
byte[] bytes | 文件二进制数据 | |||
byte[] changes | 当前文件和保存之前文件的区别。changes.zip | |||
String key | 是openDocument()返回值中的key | |||
saveAfterInitialization() | 保存后置方法 | Map<String, Object> map | 在openDocument()方法中传入的文件数据信息 | |
byte[] bytes | 文件二进制数据 | |||
String fileExtension | 文件后缀 |
参考 onlyOffice.html
style.js 中的openDocument()
参考 onlyOffice.vue
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。