# Spring-Boot-onlyOffice **Repository Path**: daydayup_future/spring-boot-only-office ## Basic Information - **Project Name**: Spring-Boot-onlyOffice - **Description**: springboot集成onlyOffice的实现。在参考网络上的资料结合自身实际情况总结,让集成oo方便快捷。 封装了oo服务的API和统一了配置。 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 81 - **Created**: 2024-03-07 - **Last Updated**: 2024-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring-Boot-onlyOffice(集成onlyOffice服务) springboot集成onlyOffice的实现。在参考网络上的资料结合自身实际情况总结,让集成oo方便快捷。 封装了oo服务的API和统一了配置。 - 在线编辑,查看,转换 * onlyOffice.yml配置文件 * 如果解决了你地方问题,请给个 **star** ----------------------------------- # 对外使用的java类 —— OnlyServiceAPI ## 核心方法
方法名称 参数 参数说明 返回值
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 文档密码
**注意:** * 外部触发保存操作,save()方法。 * `autosave`/`forcesave` 参数为默认值时有效 * 修改文件后,没有执行回调方法。在点击保存后执行回调 ![](jpg/f.jpg) 快速使用 ----------------------------------- - 必须的依赖 ``` pom org.springframework.boot spring-boot-starter-data-redis org.projectlombok lombok true com.alibaba fastjson 2.0.25 cn.hutool hutool-all 5.8.16 com.inversoft prime-jwt 1.3.1 org.apache.commons commons-pool2 ``` - 定义关键接口(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 文件后缀
## 更新记录 - [x] 修复关闭文件后快速再次打开该文件后,保存时报错的bug 2023/11/10 - [x] 修复内存文件信息在保存后没有修改的bug 2023/10/23 - [x] 实现和编辑器的数据通信 2023/9/9 (更新链接) https://blog.xenosp.cn/posts/87468caf/ - [x] 修复文件转pdf时只有第一页的bug 2023/8/13 ----------------------------------- # 页面集成 ### html ``` 参考 onlyOffice.html style.js 中的openDocument() ``` ### vue ``` 参考 onlyOffice.vue ``` ----------------------------------- ![](jpg/QQ截图20230805221213.jpg) ### 编辑 ![](jpg/edit.jpg) ![](jpg/editxlsx.jpg) ![](jpg/editppt.jpg) ### 查看 ![](jpg/view.jpg) ![](jpg/viewxls.jpg) ![](jpg/viewppt.jpg) ### 文件转换 ![](jpg/docx-pdf.jpg) ![](jpg/xlsx2pdf.jpg)