ONLYOFFICE介绍

ONLYOFFICE是一款开源在线office工具,可以让客户直接从web端进行文档编写。官方网站https://www.onlyoffice.com/zh

官方提供了开源社区版不同平台的使用版本,下载地址 https://www.onlyoffice.com/zh/download.aspx?from=downloadintegrationmenu 。本文将基于Docker版本演示及使用。

相关文档

快速部署

使用 Docker 版本部署,文档可参考 官方说明

安装 Docker

可参考文档 http://get.daocloud.io

Docker for Windows 在Windows上运行Docker。系统要求,Windows10x64位,支持Hyper-V。如果您的电脑版本过旧,可以使用 Docker Toolbox 在Windows或者Mac上运行Docker。适用于Mac OS X 10.8+ 或者 Windows 7/8.1。相关文件在文档中都有下载地址。

安装 ONLYOFFICE

WIN10系统下,进入cmd命令窗口执行命令。

  • docker pull registry.cn-beijing.aliyuncs.com/kaite-open/documentserver:v0.3 拉取最新 ONLYOFFICE 镜像,文件较大下载需等待一段时间。
  • docker run -i -t -d -p 8989:80 registry.cn-beijing.aliyuncs.com/kaite-open/documentserver:v0.3 启动镜像,其中8989为映射到本地的端口。

运行成功后可使用本机IP访问,如 http://127.0.0.1:8989 .

JEPaaS 集成相关配置

在【系统变量】功能中增加如下变量

  • JE_OFFICE_TYPEoffic使用工具类型,值为onlyoffice时启用onlyoffice。
  • ONLYOFFICE_HOST onlyoffice地址(浏览器可访问地址),此地址是浏览器访问onlyoffice的地址。
  • ONLYOFFICE_CALL_HOST回调JEPaaS地址(onlyoffice可访问地址),此地址是onlyoffice访问JEPaaS系统的地址,用来下载文件及保存时回调JEPaaS。

解除限制(此操作可能会有授权风险,谨慎操作)

社区版本有20个连接数的限制,超过20人同时编辑会出现版权提示。网上解除方式参考 https://blog.csdn.net/xm393392625/article/details/86525081 ,此操作有版权风险,谨慎操作,后果自负。

集成后常见问题处理

问题1


此问题是因为onlyoffice新版本api与旧版不一致,可以通过重写枚举类来解决。步骤如下:

  • 在je-web下新建com.je.onlyoffice.builder包
  • 新建DocumentType类,内容如下:
package com.je.onlyoffice.builder;

import com.google.common.collect.Lists;

import java.util.List;


public enum DocumentType {

    text,spreadsheet,presentation;
    //不同类型对应的后缀集合
    private static List<String> WORD = Lists.newArrayList("doc", "docm", "docx", "dot", "dotm", "dotx", "epub", "fodt", "htm", "html", "mht", "odt", "ott", "pdf", "rtf", "txt", "djvu", "xps");
    private static List<String> CELL = Lists.newArrayList("csv", "fods", "ods", "ots", "xls", "xlsm", "xlsx", "xlt", "xltm", "xltx");
    private static List<String> SLIDE = Lists.newArrayList("fodp", "odp", "otp", "pot", "potm", "potx", "pps", "ppsm", "ppsx", "ppt", "pptm", "pptx");

    public static DocumentType parse(String suffix) {
        if (CELL.contains(suffix)) {
            return spreadsheet;
        } else if (SLIDE.contains(suffix)) {
            return presentation;
        }
        return text;
    }
}
  • 重新编译、打包后解决问题
最后编辑: 呼丽华  文档更新时间: 2024-07-05 09:35   作者:呼丽华