• 一、安装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.6\java组共享\onlyoffice\onlyoffice5.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的功能十分强大,我们只是使用它的文档服务器,而且文档服务器中还有很多其他的功能,例如多人同时在线编辑,互聊等等,因为平台暂时没有用到,所以暂时没有做很深入的研究。想了解具体详细的资料可以通过链接:

    https://api.onlyoffice.com/

    https://blog.csdn.net/hotqin888/article/details/79337881

onlyoffice在线编辑的更多相关文章

  1. dzzoffice协同办公平台与onlyoffice在线协作平台安装与部署

    1.安装dzzoffice协同办公平台 DzzOffice是一套开源办公套件,适用于企业.团队搭建自己的 类似“Google企业应用套件”.“微软Office365”的企业协同办公平台. 官网地址:h ...

  2. Microsoft Azure Web Sites应用与实践【3】—— 通过Visual Studio Online在线编辑Microsoft Azure 网站

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  3. 小讲堂:在线编辑在Mobox文档管理软件中的意义

    今天我们来讨论一下,mobox文档管理软件中的在线编辑的这个功能,相信这个功能是用户在日常的文档维护中非常需要的. 文档管理软件的诸多功能中,在线编辑是一块很重要的功能点,因为在线编辑可以说是提高工作 ...

  4. Office word excel电子表格在线编辑的实现方法

    Office xp之后的版本支持通过webdav协议(http的扩展)直接编辑服务器上的文件. IIS(6.0)支持webdav,这在IIS管理器的web服务扩展中可以看到.利用IIS作为webdav ...

  5. RunJS - 在线编辑、展示、分享、交流你的 JavaScript 代码

    发现一个很好玩,很强大的网站 RunJS - 在线编辑.展示.分享.交流你的 JavaScript 代码   http://runjs.cn/ 比如: http://runjs.cn/detail/l ...

  6. [前端插件]Bootstrap Table服务器分页与在线编辑应用总结

    先看Bootstrap Table应用效果: 表格用来显示数据库中的数据,数据通过AJAX从服务器加载,同时分页功能有服务器实现,避免客户端分页,在加载大量数据时造成的用户体验不好.还可以设置查询数据 ...

  7. icon在线编辑和查找工具

    1.www.iconpng.com 2.在线编辑http://www.ico.la/ 3.小图标查找 http://icomoon.io/app/ 4.20个免费的psd http://www.osc ...

  8. word在线编辑\生成图片(包含截图与合并)

    1.业务原因 word编辑后的文章复制到html编辑器(fck等)会发生排版错乱的情况,于是混沌了.需要有一个新的方法来终结,于是产生了word能不能在线编辑,后台保存,前台显示灯一系列问题. 2.首 ...

  9. Office文档在线编辑的实现之二

    讲述了如何通过iis的webdav支持实现客户端的office直接编辑服务器上的文件,本篇将讲解如何实现客户端的office直接编辑数据库中的二进制形式保存的office文件. 实现的关键:模拟IIS ...

随机推荐

  1. 基于.Net Core的Redis:基本数据类型及其应用场景与命令行操作

    参考自:https://blog.csdn.net/only_yu_yy/article/details/78873735 https://blog.csdn.net/fenghuoliuxing99 ...

  2. 开源项目推荐 - 巨鲸任务调度平台(Spark、Flink)

    Big Whale(巨鲸),为美柚大数据研发的大数据任务调度平台,提供Spark.Flink等离线任务的调度(支持任务间的依赖调度)以及实时任务的监控,并具有批次积压告警.任务异常重启.重复应用监测. ...

  3. defineProperty 和Proxy双向绑定演示,你还不知道么?

    双向绑定,也就是说js中的数据传到页面,页面中的内容到js,实现同步更新,简单的演示可以直接复制下放HTML代码运行. 在这个例子中,我们使用defineProperty ,Object.define ...

  4. plantuml 基本语法(转摘)

    <div id="topics"> <div class="post"> <h1 class="postTitle&qu ...

  5. PHP date_add() 函数

    ------------恢复内容开始------------ 实例 添加 40 天到 2013 年 3 月 15 日: <?php$date=date_create("2013-03- ...

  6. PHP fscanf() 函数

    定义和用法 fscanf() 函数根据指定的格式对来自打开的文件的输入进行解析. 语法 fscanf(file,format,mixed) 参数 描述 file 必需.规定要检查的文件. format ...

  7. PHP pclose() 函数

    定义和用法 pclose() 函数关闭由 popen() 打开的进程. 如果失败,该函数返回 FALSE. 语法 pclose(pipe) 参数 描述 pipe 必需.规定由 popen() 打开的进 ...

  8. Skill art函数遍历字典

    https://www.cnblogs.com/yeungchie/ code procedure(ycartGo(length1) prog(() for(x 1 length1 printf(&q ...

  9. luogu P6583 回首过去 简单数论变换 简单容斥

    LINK:回首过去 考试的时候没推出来 原因:状态真的很差 以及 数论方面的 我甚至连除数分块都给忘了. 手玩几个数据 可以发现 \(\frac{x}{y}\)满足题目中的条件当且仅当 这个是一个既约 ...

  10. windows:shellcode 远程线程hook/注入(一)

    https://www.cnblogs.com/theseventhson/p/13199381.html 上次分享了通过APC注入方式,让目标线程运行shellcode.这么做有个前提条件:目标线程 ...