项目开发中,可能会需要用到在线编辑文档的功能(比如常用的word、excel),甚至多人协作编辑的功能,经过对比,最终采用了onlyoffice在线协作编辑,下面简要介绍一下。
文档服务工作原理
打开文档流程
用户通过浏览器打开文档预览或编辑页面文档编辑页面通过js脚本将文档编辑请求发送到文档服务器文档编辑页面向文档服务器请求打开文档编辑文档服务器根据文档配置,下载文档并转换为可编辑模式准备好后,文档编辑服务将可编辑的文档格式发送到浏览器浏览器显示可编辑的文档格式
保存文档流程
用户在浏览器编辑文档浏览器将用户的修改发送到文档编辑服务用户关闭浏览器文档编辑服务监视文档工作的结束,并将从浏览器发送的更改归集到一个文档中文档编辑服务使用页面JS中的callbackUrl通知用户服务器文档编辑的结束,并返回到已修改文档的下载链接
更多详细的高级用法参考官方文档介绍
前端接入方式
前端只需要创建一个文档预览或编辑页面,同时添加文档服务提供的文档渲染脚本即可。
配置文档渲染参数,并创建文档对象
config:允许更改使用的平台类型,文档显示大小(宽度和高度)和打开的文档类型
document:包含与文档有关的所有参数(标题,URL,文件类型等)
editorConfig:定义与编辑器界面有关的参数:打开模式(查看器或编辑器),界面语言,附加按钮等)
更多高级的配置可参考官方文档
后端如何接入
后端需至少实现两个接口,一个为文档的获取接口(即上面config中document的url),另一个为文档的保存接口(即上面config中editorConfig的callbackUrl)。
以下是最终文档修改变化的接口示例,(需要注意的是,因为文档是实时修改保存的,所以需要Scannerscanner=newScanner(request.getInputStream());这种方式获取数据流)。
完成上述配置就实现了最简单的文档服务接口功能,至此已经可以通过在线预览和编辑文档了。