• 一、安装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. 2. 妈呀,Jackson原来是这样写JSON的

    没有人永远18岁,但永远有人18岁.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...

  2. Java基础(二)流程语句与数组

    Java流程语句详解:https://www.cnblogs.com/jiajia-16/p/6008200.html Java数组详解:https://www.cnblogs.com/jiajia- ...

  3. 第四课 OOP封装继承多态解析,接口抽象类选择 2019-04-21

    父类 xx = new 子类(); xx.method(); 1 普通方法由编译时决定(左边) --- 提高效率 2 虚方法(virtual)  由运行时决定-- -多态,灵活 3 抽象方法由运行时决 ...

  4. 数据库事务的四个特性ACID

    原子性[Atomicity] 原子性指的指的就是这个操作,要么全部成功,要么全部失败回滚.不存在其他的情况. 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一 ...

  5. java JDBC自我总结

    preparedstatement和statement的区别 当不需要预编译时(不需要占位符)可以选用statement,存在不安全 当有占位符(?)时,需要选用preparedstatement s ...

  6. JavaScript高级程序设计(第三版) 6/25

    第六章面向对象的程序设计 1.定义只有在内部才用的特性(attribute)时,描述了属性(property)的各种特征.这些特性是为了实现JavaScript引擎用的,因此在JavaScript中不 ...

  7. PHP is_writeable() 函数

    定义和用法 is_writeable() 函数检查指定的文件是否可写. 如果文件可写,该函数返回 TRUE. 该函数是 is_writable() 函数的别名. 语法 is_writeable(fil ...

  8. 如果你大学上过编程课,一定被老师提醒过:不要使用 goto 语句!

    如果你上过编程课,一定被老师提醒过:不要使用goto语句! 因为goto语句不仅让代码的可读性很差,随意的跳出还会给程序带来安全隐患. 但是这种几乎被现代编程明令禁止的语句,在计算机诞生之初却司空见惯 ...

  9. 不用注入方式使用Spring管理的对象中的方法,神奇

    在小冷工作中遇到这么一个小问题,当你的业务层对象交给spring管理之后,在普通的类中调用这个类中的方法时候,会有个问题这个类在调用时候会一直返回一个null,而且还会抛出一个空指针异常. 小冷在遇到 ...

  10. Logback日志格式优化,解决输出***@2b193f2d问题

    原文出处:Java之道 原文地址:http://www.hollischuang.com/archives/3689 我们在开发的时候,经常要打印日志,有的时候会在一些代码的关键节点处进行日志输出.使 ...