- 一、安装ONLYOFFICE Document Server
- 二、集成onlyoffice的二次开发
- 三、故障排除:
- 四、缺陷
- 五、总结
ONLYOFFICE Document Server提供文档协作的服务功能,支持Word,Excel和PowerPoint的协作。但是这里,需要进行文档管理和存储的二次开发。
一、安装ONLYOFFICE Document Server
平台集成onlyoffice,调用onlyoffice的api,需要现在本地的一台服务器上安装onlyoffice的文档服务器,安装文档服务器的方式有很多种,Windows和Linux上都可以安装,但是因为文档服务器的正常使用需要其他插件的配合,所以正常按照官网上来一步步安装,还需要安装redis,rabbitMQ,mysql、Erlang、PostgreSQL等等一系列的插件,十分麻烦,而且如果你是使用windows版本安装的话,因为onlyoffice不支持中文,所以有关于中文的文档基本都是乱码,需要你另行安装字体文件,但是onlyoffice内部对于字体的添加,我查阅网上的一些资料,好像是扫描windows系统中的字体,来进行转换的,系统字体很难去删除添加,所以这种方式我不建议使用,我推荐的是在windows上使用虚拟服务器来安装docker,导入一个整体的镜像文件,(包含了中文字体)来运行onlyoffice,这里需要说明一下,至少需要2G的内存空间来让他正常运行,其流程如下:
第一步:确定电脑打开了cpu虚拟打开。https://jingyan.baidu.com/article/22fe7ced3b4c003002617f17.html
第二步:下载和安装docker,默认安装即可。windows安装docker toolbox,下载地址http://get.daocloud.io/,下载支持旧版windows的docker toolbox,win10就直接下载docker了;linux安装docker 安装,安装步骤可参考使用docker进行项目一键部署 。
第三步:启动docker后在里面拉取Onlyoffice Document Server 的Docker镜像
拉取镜像:启动docker,在里面输入命令
第四步:启动镜像文件:docker run -i -t -d -p 9000:80 onlyoffice/documentserver
如果是导入的镜像,上面的命令中onlyoffice/documentserver用镜像id代替, 查阅镜像用docker images命令。
镜像文件拉取:\192.168.0.6java组共享onlyofficeonlyoffice5.1.4.tar
二、集成onlyoffice的二次开发
文档的管理和引用:
创建一个空的html文件。
使用将用于您的网站的JavaScript API指定您的ONLYOFFICE文件服务器链接。
< script type = “text / javascript” src = “https://documentserver/web-apps/apps/api/documents/api.js” ></ script >
凡documentserver是一台安装ONLYOFFICE文件服务器的服务器的名称。
添加脚本初始化文件编辑器的DIV与您要打开的文档的配置元素。
new DocsAPI.DocEditor("placeholder", {
"document": {
"fileType": "docx",
"key": "Khirz6zTPdfd7",
"title": "Example Document Title.docx",
"url": "https://example.com/url-to-example-document.docx"
},
"documentType": "text"
});
以上配置即可以打开文档服务器,但是编辑完完页面虽然显示自动保存,但是它是保存在它自己配置的一个缓存数据库中,你下次打开它会从此数据库中获取,但是下载出来的仍然是编辑之前的。
“documentType”:“text”,
“editorConfig”:{
“callbackUrl”:“https://example.com/url-to-callback.ashx”
}
这里可以设置保存路径,callbackurl即为回调处理,把编辑后文件保存在本地的指定路径上
平台系统中可以参照view_files.jsp这个页面:
-
<body style="height:100%; margin:0;"> <div id = "placeholder"> </div > <script type="text/javascript" > window.docEditor = new DocsAPI.DocEditor("placeholder", { "document": { "fileType": "${FileType}", "key": "${key}",//Khirz6zTPdfd9 "title": "测试查看文档", "url": "${fileUrl}" }, "documentType": "${documentType}", "editorConfig":{ "autosave": false, "mode": "edit", "lang":"zh-cmn-Hans", "callbackUrl":"${Path}admin/fileView/callBack.do?FileId=${FileId}&FileName=${FileName}", "高度": "100%", "宽度": "100%" } }); </script> </body>
-
Document是打开文档编辑的必要组件,filetype是文件类型,平台上目前只支持word、excel、ppt三种文件格式;
key是唯一标识符,文档编辑完成以后路径会保存在Postgresql数据库中,以键值对的形式存在,key值即是取出保存路径的唯一标识符;
documentType是文档类型,这一点不要与文件类型搞混;
editorConfig内是拓展组件,autosave是自动保存,默认值为true,这里设置为false改为手动保存。
三、故障排除:
下载失败
“下载失败”消息显示在编辑器加载过程中。
该文档编辑服务不能上传文件进行编辑。
检查指向document.url中指定文件的链接是否正确。链接必须可以从文档编辑服务访问。
没有变化
在编辑后关闭编辑器时,文件管理器中的文件保持不变。
该文档编辑服务无法将数据发送到文档存储服务。
检查editorConfig.callbackUrl链接是否正确。文档管理器中的保存必须通过回调处理程序来实现
无法保存
编辑器加载了“文档无法保存”消息。
该文档编辑服务无法连接到文件存储服务在editorConfig.callbackUrl地址。
检查回调处理程序是否正常工作。作为回应,文档存储服务必须返回{“error”:0}。
文件版本已更改
编辑器加载了“文件版本已更改,页面将重新加载”消息。
该文档编辑服务无法打开以前编辑和保存的文件进行编辑。
不要忘记,每次文档被编辑和保存时,必须重新生成document.key。
这路的key需要强调一下,key必须是唯一值,因为她是作为唯一标识来从数据库中获 取编辑过的文件
四、缺陷
chrome和opera浏览器中输入中文,键入符号的时候,前面的中文会重复输入进去。
浏览器访问不能以localhost,127.0.0.1来直接访问,需要输入你完整的地址(例如:192.168.0.xx:8090/.....),不然无法打开在线编辑功能
目前只有最新版本的Chrome,Firefox,Safari或Internet Explorer网络浏览器支持文档编辑器(IE9以前的都不支持onlyoffice的文档编辑器)
历史版本功能目前是只支持word的历史版本,PowerPoint和Excel不支持历史版本,并且历史版本只能看,不能再次编辑
五、总结
Onlyoffice的功能十分强大,我们只是使用它的文档服务器,而且文档服务器中还有很多其他的功能,例如多人同时在线编辑,互聊等等,因为平台暂时没有用到,所以暂时没有做很深入的研究。想了解具体详细的资料可以通过链接: