在数字化转型的背景下,现代企业的诸多业务系统(合同管理系统,OA,邮件,客户管理系统等)已经可以用浏览器直接使用,但是word,excel,ppt等Office文档在业务系统中还经常以*.docx,*.xlsx,*.pptx的附件的形式存在,用户依然需要先下载到本地,然后用Office打开编辑,完成后再上传回去。那么如何实现对业务系统中Office文档的多人在线编辑,实现业务系统的体验闭环和应用创新?答案是和zOffice在线文档系统集成。

zOffice简介

zOffice提供云端Office能力,包括word、excel、ppt三类办公文档的在线协同编辑,通过专业级的文档能力,高效的协作体验,内容级的安全管控,丰富的集成开发接口,来赋能企业的业务系统,帮助业务系统实现文档在线预览和编辑,文档操作过程全部线上进行,完成在线办公的场景闭环。

zOffice链接:https://www.filez.com/zoffice

集成介绍文档: https://lenovocloud.zbox.filez.com/l/a0OsO0

多人在线编辑的三要素:

zOffice最大化简化集成复杂度,把多人在线编辑的需求抽象成“人”、“物”、“权”三要素:

  • 人:zOffice系统需要知道当前是哪个用户正在打开编辑;
  • 物:即当前编辑的是哪个文档,zOffice系统需要能在打开的时候获取该文档的文件流,保存的时候把经过修改的文件流回传给业务系统;
  • 权:即“人”对“物”的访问权限,zOffice系统在某“人”要打开编辑某“物”的时候,需要验证该人对文档是否有读取/写回等访问权限。

以上三要素的管理和提供方都是业务系统,zOffice系统和业务系统通过约定好的前后端接口来获取三要素的信息。

根据三要素信息传递方式的不同,有两种集成方式:

方式一:“后端集成”。

zOffice和业务系统通过约定好的服务端对服务端接口获取三要素信息。适用于业务系统服务端代码可以修改,前端代码不需要改动太多的场景。

  • 人:业务系统服务端实现 /{context}/profiles GET接口用于根据cookie返回当前用户的信息,zOffice服务端调用该接口获取用户信息,返回值示例如下:

Get http://172.16.52.223/v2/context/profiles (其中172.16.52.223假定为业务系统的服务端地址)返回

{

"id": "301",

"display_name": "docstest02",

"email": "docstest02@lenovo.com",

"photo_url": "/testOrg/people/301.png",

"name": "docstest02",

"job_title": ""

"org_name": "",

"org_id": "",

}

  • 物:业务系统服务端实现 /{context}/{docId}/content GET/POST接口,供zOffice获取和回传文件内容流。
  • 权:业务系统服务端实现 /{context}/{docId}/meta GET接口,供zOffice获取当前用户对当前文档的权限信息,例如针对docId为123的文档调用GET meta接口返回值示例如下:

Get http://172.16.52.223/v2/context/123/meta 返回

{

"id": "123" //必须有,

"name": "/study/Nodejs/Demo/mytest.xlsx", //必须包含文件的扩展名

"modified_at": "2020-03-25T02:57:38.000Z",//必须有

"created_by": { //必须有

"id": "301",  //必须有

"email": "docstest02@lenovo.com", // 可选

"name": "docstest02" // 可选

},

"permissions": {  //必须有

"write": "true", //必须有,控制文档是否可以被编辑

"read": "true", //必须有

“download”: false, //可选。

“print”: true //可选。

},

"size": 9897, //必须有

}

业务系统服务端实现上述3个rest接口并且和zOffice服务端配置连通后,用户在浏览器里点击 https://oa.demo.com/docs/app/thirdparty-rest/123/edit/content 即打开zOffice在线编辑id为“123”的文档。

方式二:“前端集成”。

zOffice系统需要的“人”“物”“权”的相关信息都从业务系统前端用url参数的形式传递给zOffice服务器。适用于业务系统的服务端代码不方便修改,前端js代码可以修改,并且业务系统已经具备了从前端上传下载文档,获取用户信息,获取权限信息等功能。

例如,用户在浏览器点击文档123时,业务系统的前端js直接构造如下的地址并用window.open或iframe src的形式打开zOffice在线编辑:

https://oa.demo.com/docs/app/driver-callback? action=edit&repoId=thirdparty&docId=123 &userinfo=xxxxxx&meta=yyyyyy&downloadUrl=zzzzzz&uploadUrl=zzzzzz

  • 人:即userinfo=xxxxxx部分,业务系统前端js代码按照上述profiles返回值格式构造好传入;
  • 物:即downloadUrl=zzzzzz 用于指定下载文件流的url;uploadUrl=zzzzzz 用于指定回传文件流的url;
  • 权:即meta=yyyyyy部分,业务系统前端js代码按照上述meta返回值格式构造好传入。

总结

综上,业务系统的开发者可以根据情况选择“后端集成”或“前端集成”的方式集成zOffice,简单快捷的实现多人在线编辑功能。

业务系统里的Office文档如何在线编辑相关推荐

  1. office文档管理服务器编辑,_卓正软件 - PageOffice官方网站 - 在线编辑Word、Excel的Office文档控件...

    Office 组件 在线显示.编辑.保存Word文档 √ √ √ 在线显示.编辑.保存Excel文档 √ √ √ 在线显示.编辑.保存PowerPoint文档 √ √ √ 在线播放PowerPoint ...

  2. 使用微软提供的Office Online实现Office文档的在线查看,编辑等功能

    使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档 http://view.officeapps.live.com/op/view.aspx?src=要 ...

  3. java 流转文件_java 实现 word 文档的在线编辑以及流转

    用 pageoffice 实现文档的在线编辑以及文档流转 1: 流程 用修改无痕迹模式起草文件,各个领导批注自己意见的时候使用强制留痕模式打开,文员清稿的时候用核稿模式打开,还有最后只读模式打开发布的 ...

  4. 前端实现pdf,word,doc等Office文档格式在线预览

    在做一些后台管理或者h5页面的时候 通常会遇到Office文档格式的在线预览功能.虽然看似简单,里面却隐藏着很大的坑.简单是因为现在有各种插件可以下载实现,坑是因为涉及到一些兼容性和安全性等各种千奇百 ...

  5. 怎么在线预览.doc,.docx,.ofd,.pdf,.wps,.cad文件以及Office文档的在线解析方式。

    Office文档在线预览大全,OFD文件在线预览 JavaScript文件在线预览 Office文档在线预览大全,OFD文件在线预览 前言 一. 什么是office文档在线预览解析? 二.预览流程分析 ...

  6. 在线查看.doc,.docx,.ofd,.PDF,.WPS以及Office文档的在线解析方式。

    前端怎么实现Office文件在线预览解析 一. 什么是office文档在线预览解析? Office在线预览指的是,将传统的Word.PPT.Excel.PDF.OFD.音视频等文件在浏览器中预览查看. ...

  7. 业务系统中的Word文档如何转成pdf

    在业务系统中Word文档转pdf是常见的需求,Word文档格式用于业务文档的编辑过程,Pdf文档格式用于流转分发的过程,通过zOffice的Open API可以方便的把Word文档转成Pdf,同时可以 ...

  8. 访问共享文件夹里的office文档时提示内存或磁盘空间不足

    访问共享文件夹里的word.excel文档时提示内存或磁盘空间不足 解决方法: 分别打开word和excel,文件–选项 点击信任中心–信任中心设置 点击受保护的视图,将右侧三个复选框的勾去掉. 问题 ...

  9. 利用微软的平台进行Office文档的在线查看

    微软的预览Office服务: 1.在线查看:http://view.officeapps.live.com/op/view.aspx?src=文档地址 文档地址用URLEncode进行处理的链接地址. ...

最新文章

  1. 链表问题9——复制含有随机指针节点的链表(进阶)
  2. 中科院NLPIR中文分词java版
  3. Java并发编程之美读书笔记-并发编程基础2
  4. html页面阴影怎么做,html – 做弯曲阴影的最佳方式
  5. b超可以看出什么_B超可以查出什么
  6. java vector实现的接口_java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
  7. 史上最详 Thymeleaf 使用教程
  8. java反射创建带参数对象_反射 Java反射对象创建 - 闪电教程JSRUN
  9. 尝试加载Crystal Reports 运行时时出错
  10. 极限编程(XP)简介
  11. 自然语言处理核心期刊_计算机核心期刊
  12. WPF 简易手绘笔迹支持回放的方法
  13. 用html5做心,HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
  14. 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然...
  15. 科学计算机复利现值怎么计算公式,怎么用科学计算器算年金现值和复利现值是那个......
  16. 远程连接服务器突然失败
  17. 计算机图形学常见算法原理,计算机图形学常用算法及代码大全
  18. 风云邀请成为IT168社区Silverlight版主
  19. Trace - 一文读懂tracepoint
  20. [BZOJ 3864][HDU 4899]Hero meet devil(DP套DP)

热门文章

  1. 20篇精心整理的技术360
  2. 应届毕业生社会踏入社会需要注意的几点社会经验总结
  3. matlab图片不覆盖,放置MATLAB图例,使其在图上不重叠
  4. 个人作品——豆瓣FM客户端
  5. Blinker 天气时钟 esp8266+SH1106 OLCD屏显示
  6. cmd 定时关机 命令
  7. QQ2011多开的实现
  8. 关于05.轮播图.html:177 Uncaught TypeError: Cannot set properties of null (setting ‘onclick’)
  9. TestDirector8.0 下载 安装
  10. COSCon'22 开源商业论坛 | 刘天栋:从社区参与到开源商业化