毕升office可以与各类在线业务系统进行集成,例如:网盘,OA,公文系统等。这些系统可调用毕升office的编辑以及预览服务进行office的预览以及编辑。在集成调用中可以根据不同的参数来实现不同的功能。
在调用毕升office时需要传入需要编辑或者预览的文档的相关信息以及当前编辑或者预览文档的用户的信息两项必须的基础数据。毕升office在收到这些数据时,将根据文档信息来处理文档,并且根据用户信息来初始化编辑器的相关信息。除基础数据之外,也可以根据集成的需要传入其他相关数据来实现相关功能:例如实现文档打印,下载的权限控制,以及对编辑行为的相关控制(例如控制word局部编辑,控制word进入修订模式等)。这些数据的基本格式如下:
{
doc: {
docId: "",
title: "",
fetchUrl: "",
},
user: {
uid: "",
nickName: "",
avatar: ""
},
}
参数中doc部分为需要毕升office系统处理的文件的信息,各个字段具体意义如下:
当不传入fetchUrl时,系统将打开一个空文件,此时相当于是创建来一个文件。
毕升office进行文件预览的的方法为在浏览器中打开类似下面的地址:
http://bisheng_host/apps/editor/openPreview?data=XXX
毕升office进行文件编辑的的方法为在浏览器中打开类似下面的地址:
http://bisheng_host/apps/editor/openEditor?data=XXX
其中bisheng_host为毕升office服务所在的地址。data的值为上文中提到的所需的json数据进过如下两步处理得到的字符串:
例如:编辑/预览一个文件时的相关参数如下:
{
doc: {
docId: "bishengofficeDoxTest",
title: "毕升Office测试.docx",
fetchUrl: "https://bisheng-public.nodoc.cn/sample/%E6%AF%95%E5%8D%87office%E6%B5%8B%E8%AF%95%E6%96%87%E6%A1%A3.docx"
},
user: {
uid: "admin",
nickName: "管理员",
avatar: "https://bisheng-upload.nodoc.cn/system/defaultAvatar.png"
},
}
{"doc":{"docId":"bishengofficeDoxTest","title":"毕升Office测试.docx","fetchUrl":"https://bisheng-public.nodoc.cn/sample/%E6%AF%95%E5%8D%87office%E6%B5%8B%E8%AF%95%E6%96%87%E6%A1%A3.docx"},"user":{"uid":"admin","nickName":"管理员","avatar":"https://bisheng-upload.nodoc.cn/system/defaultAvatar.png"}}
eyJkb2MiOnsiZG9jSWQiOiJiaXNoZW5nb2ZmaWNlRG94VGVzdCIsInRpdGxlIjoi5q+V5Y2HT2ZmaWNl5rWL6K+VLmRvY3giLCJmZXRjaFVybCI6Imh0dHBzOi8vYmlzaGVuZy1wdWJsaWMubm9kb2MuY24vc2FtcGxlLyVFNiVBRiU5NSVFNSU4RCU4N29mZmljZSVFNiVCNSU4QiVFOCVBRiU5NSVFNiU5NiU4NyVFNiVBMSVBMy5kb2N4In0sInVzZXIiOnsidWlkIjoiYWRtaW4iLCJuaWNrTmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vYmlzaGVuZy11cGxvYWQubm9kb2MuY24vc3lzdGVtL2RlZmF1bHRBdmF0YXIucG5nIn19
因此预览该文件的地址为:
http://bisheng_host/apps/editor/openPreview?data=eyJkb2MiOnsiZG9jSWQiOiJiaXNoZW5nb2ZmaWNlRG94VGVzdCIsInRpdGxlIjoi5q+V5Y2HT2ZmaWNl5rWL6K+VLmRvY3giLCJmZXRjaFVybCI6Imh0dHBzOi8vYmlzaGVuZy1wdWJsaWMubm9kb2MuY24vc2FtcGxlLyVFNiVBRiU5NSVFNSU4RCU4N29mZmljZSVFNiVCNSU4QiVFOCVBRiU5NSVFNiU5NiU4NyVFNiVBMSVBMy5kb2N4In0sInVzZXIiOnsidWlkIjoiYWRtaW4iLCJuaWNrTmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vYmlzaGVuZy11cGxvYWQubm9kb2MuY24vc3lzdGVtL2RlZmF1bHRBdmF0YXIucG5nIn19
编辑地址为:
http://bisheng_host/apps/editor/openEditor?data=eyJkb2MiOnsiZG9jSWQiOiJiaXNoZW5nb2ZmaWNlRG94VGVzdCIsInRpdGxlIjoi5q+V5Y2HT2ZmaWNl5rWL6K+VLmRvY3giLCJmZXRjaFVybCI6Imh0dHBzOi8vYmlzaGVuZy1wdWJsaWMubm9kb2MuY24vc2FtcGxlLyVFNiVBRiU5NSVFNSU4RCU4N29mZmljZSVFNiVCNSU4QiVFOCVBRiU5NSVFNiU5NiU4NyVFNiVBMSVBMy5kb2N4In0sInVzZXIiOnsidWlkIjoiYWRtaW4iLCJuaWNrTmFtZSI6IueuoeeQhuWRmCIsImF2YXRhciI6Imh0dHBzOi8vYmlzaGVuZy11cGxvYWQubm9kb2MuY24vc3lzdGVtL2RlZmF1bHRBdmF0YXIucG5nIn19
该错误表示callURL值在office服务器端解码错误
{"code": "request data error", "data": data, "error": err}
该错误表示Office服务器在请求集成方获取文件预览/编辑数据时发生错误。错误提示中的callurl为服务器请求发送错误的是地址。error为错误详细信息。
javascript base64编码以及解码可以参考:
function base64Encode(text){
return btoa(unescape(encodeURIComponent(text)))
}
function base64Decode(text){
return JSON.parse(window.decodeURIComponent(window.atob(text)))
}
本文中介绍的调用方法时直接在URL中传入参数来调用毕升office,该方法的特点时简单直接,所有的操作都在客户端进行。同时毕升office还提供另外一中方式进行集成:即通过服务端来传递参数调用毕升office,具体参考链接:服务端获取参数集成
除本文中涉及到的基本必须参数外,调用过程中也可以传入更多的参数来实现例如文档下载,编辑权限控制,局部编辑控制等功能。具体参考链接:集成参数