一、镜像安装:用OnlyOffice提供的Docker镜像安装OnlyOffice是比较方便和推荐的方法,因为它可以自动配置OnlyOffice的所有依赖项,从而减少安装和配置的复杂度。

  1. 首先需要安装Docker,可以参考官方文档进行安装:https://docs.docker.com/engine/install/
  2. 安装完Docker后,可在终端中通过命令sudo docker run --net host -i onlyoffice/documentserver下载OnlyOffice的Docker镜像,在安装过程中可以根据需要自定义一些参数,例如指定文件存储路径、指定管理员账号等。
  3. 等待下载完成后,使用命令sudo docker ps查看已启动的容器,可以看到OnlyOffice服务已经运行起来了。
  4. 接下来,通过浏览器访问http://服务器IP:端口号/,即可进入OnlyOffice服务管理页面,输入管理员账号和密码进行登录。
  5. 在管理页面中,可以管理用户、添加文档库、设置文档类型等,同时也可以将OnlyOffice与其他系统整合。

二、脚本安装:如果您不想使用Docker镜像,或者环境不允许,也可以通过以下方式安装OnlyOffice。

  1. 使用安装脚本进行安装

OnlyOffice提供了一个安装脚本,可以自动下载和安装所有必要的依赖项,并配置OnlyOffice服务。使用该方法安装OnlyOffice可以按照以下步骤进行操作:

  • 下载安装脚本
wget http://download.onlyoffice.com/install/install.sh
  • 将安装脚本赋予可执行权限并执行
sudo chmod +x install.sh
sudo ./install.sh
  • 在脚本执行期间,您需要回答几个问题以配置OnlyOffice服务

如果您希望卸载OnlyOffice服务,可以运行以下命令:

sudo apt-get remove onlyoffice-doc* onlyoffice-communityserver*
sudo apt-get autoremove
  1. 从源代码编译安装

如果您是开发人员或对OnlyOffice的源代码进行修改,则可以从源代码手动编译和安装OnlyOffice。这种方法需要下载OnlyOffice的源代码和编译器,需要一些专业的技能和经验。

总而言之,使用Docker镜像是只使用OnlyOffice最简单的方式,但是如果您不想使用Docker镜像,使用安装脚本或从源代码编译安装OnlyOffice也是可行的。

安装好的页面长这样:

或者长这样

三、前端代码以最最简单的html为例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>在线预览</title>
</head><body><div class="form" style="width:100%;height:800px;"><div id="iframeEditor"></div></div></body><script type="text/javascript"  src="./jquery-3.7.0.min.js"></script>
<script type="text/javascript" >$(function() {// 获取onlyoffice 路径var onlyoffice_url = "http://192.168.1.106:32774/";var onlyoffice_js = onlyoffice_url + "/web-apps/apps/api/documents/api.js";loadJS(onlyoffice_js, function() {var fileType =  "docx";var fileName = "222.docx";var key = "1111";//每次打开后要重新获取,否则编辑后打开还是编辑前的文件,如果是预览文件就没关系var mode = "edit";//view查看var url = "http://192.168.1.144:9088/onlyoffice_filePath/222.docx";//编辑保存回调函数,保存的文件可以覆盖原来的文件,也可以新生成 (保证此接口是通的否则,文件显示不出来)var callbackUrl = "http://192.168.1.102:9088/xxxxxx/CallBackServlet?fileName=222.docx";var documentType = getDocumentType(fileType);var config = {};// 预览if ("edit" == mode) {config = {document : {fileType : fileType,key :key,title : fileName,url : url},documentType : documentType,editorConfig : {callbackUrl : callbackUrl,customization : {forcesave : true,leftMenu : false,rightMenu : false,chat : true,comments : false,about : false,help : false,plugins : false},user : {id : "1",name : "用户1"},hideRightMenu : false,mode : mode,lang : "zh-CN"},height : "100%",width : "100%",lang : "zh-CN"};} else {//文件预览config = {document : {fileType : fileType,key : key,title : fileName,url : url},documentType : documentType,editorConfig : {customization : {forcesave : false,help : false,toolbar : false,statusBar : false,autosave : false,leftMenu : false,rightMenu : false,chat : false,comments : false,about : false,help : false,plugins : false,spellcheck : false,compactHeader : false},user : {id : "2",name : "用户2"},hideRightMenu : true,mode : mode,lang : "zh-CN"},height : "100%",width : "100%",lang : "zh-CN"};}docEditor = new DocsAPI.DocEditor("iframeEditor", config);});/*** 预览类型转化*/function getDocumentType(fileType) {var ExtsDocument = new Array(".doc", ".docx", ".docm", ".dot", ".dotx",".dotm", ".odt", ".fodt", ".ott", ".rtf", ".txt", ".html",".htm", ".mht", ".pdf", ".djvu", ".fb2", ".epub", ".xps");var ExtsSpreadsheet = new Array(".xls", ".xlsx", ".xlsm", ".xlt",".xltx", ".xltm", ".ods", ".fods", ".ots", ".csv");var ExtsPresentation = new Array(".pps", ".ppsx", ".ppsm", ".ppt",".pptx", ".pptm", ".pot", ".potx", ".potm", ".odp", ".fodp",".otp");fileType = "." + fileType;if (ExtsDocument.indexOf(fileType.toLowerCase()) > -1) {return "text";}if (ExtsSpreadsheet.indexOf(fileType.toLowerCase()) > -1) {return "spreadsheet";}if (ExtsPresentation.indexOf(fileType.toLowerCase()) > -1) {return "presentation";}}/***进入页面后动态加载onlyOffice所需要引入的js(实际运用引入js时IP和端口一般不固定)*/function loadJS(url, callback) {var script = document.createElement('script'), fn = callback|| function() {};script.type = 'text/javascript';if (script.readyState) {script.onreadystatechange = function() {if (script.readyState == 'loaded'|| script.readyState == 'complete') {script.onreadystatechange = null;fn();}};} else {// 其他浏览器script.onload = function() {fn();};}script.src = url;document.getElementsByTagName('head')[0].appendChild(script);}});</script>
</html>

再次强调如果你检查文件路径,onlyoffice服务路径,出现了下面这样的情况不要慌,那就是我说的保存回调函数不通,文件出不来

四、后端官网给出的测试代码也很多,我写了个Servlet,使用的时候注意几点,多人协同时状态6,2根据业务可以控制,以及前端的key多人协同,key相同打开就是一样的。

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.URL;
import java.util.Scanner;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import com.jb.util.platform.Platform;/*** 将编辑后的文件返回保存*/@WebServlet(name = "CallBackServlet", urlPatterns = {"/CallBackServlet"})public class CallBackServlet extends HttpServlet {private static final long serialVersionUID = 1L;private static final String sep = File.separator;@Autowiredprivate JdbcTemplate jdbcTemplate;public CallBackServlet() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,        IOException {PrintWriter writer = null;JSONObject jsonObj=null;try {writer = response.getWriter();@SuppressWarnings("resource")Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A");String body = scanner.hasNext() ? scanner.next() : "";try {jsonObj = (JSONObject) new JSONParser().parse(body);} catch (org.json.simple.parser.ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}      /*0-找不到具有密钥标识符的文档,1-正在编辑文档,2-文件已准备好保存,3-发生文档保存错误,4-文件已关闭,没有更改,6-正在编辑文档,但保存了当前文档状态,7-强制保存文档时出错。* */         if ((long) jsonObj.get("status") == 2) {/** 当我们关闭编辑窗口后,十秒钟左右onlyoffice会将它存储的我们的编辑后的文件,,此时status = 2,通过request发给我们,我们需要做的就是接收到文件然后回写该文件。* *//** 定义要与文档存储服务保存的编辑文档的链接。当状态值仅等于2或3时,存在链路。* */String downloadUri = (String) jsonObj.get("url");System.out.println("====文档编辑完成,现在开始保存编辑后的文档,其下载地址为:" + downloadUri);//这里加在即的业务名URL url = new URL(downloadUri);java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();InputStream stream = connection.getInputStream();//更换为实际的路径String filePath = "D://demo";File path = new File(filePath);File savedFile = new File(filePath+sep+fileName);if(!path.exists()){path.mkdirs();}try (FileOutputStream out = new FileOutputStream(savedFile)) {int read;final byte[] bytes = new byte[1024];while ((read = stream.read(bytes)) != -1) {out.write(bytes, 0, read);}out.flush();}connection.disconnect();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,  IOException {doGet(request, response);}}

官网明确给出了不同语言,框架的测试代码。例如Java,Java Spring,PHP,Node.js,C#等。

测试代码下载地址:https://api.onlyoffice.com/editors/demopreview?type=text#DemoPreview

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A7FVZhT4-1686541531242)

以Java为例,使用OnlyOffice SDK进行二次开发的步骤如下:

  • 在项目依赖中添加OnlyOffice SDK
<dependency><groupId>com.onlyoffice.documents</groupId><artifactId>onlyoffice-documentserver-java-sdk</artifactId><version>6.1.3</version>
</dependency>
  • 创建OnlyOffice DocumentServer客户端对象
DocumentServerClient client = new DocumentServerClient("http://your-documentserver.com/");
  • 请求Token
String token = client.security().requestToken();
  • 打开文档(文档的URL和Key需要进行参数替换)
EditorUrl editorUrl = client.editing().buildUrl(new DocumentRequest("document-url", "document-key")).editable().setToken(token).build();

对于二次开发者而言,OnlyOffice API和SDK的使用难度并不大,并且提供了丰富的文档和示例来帮助开发者快速上手。

onlyoffice的安装使用相关推荐

  1. window7,onlyoffice离线安装教程

    直接贴过来,懒得整理了     -安装提示 1.确定 Windows 系统支持 Hardware Virtualization Technology 并已启用. 去控制面板-启用或关闭window功能 ...

  2. onlyoffice mysql_onlyOffice安装与使用

    docker镜像安装onlyOffice 拉取onlyOffice镜像 docker pull hub.c.163.com/gongzh/onlyoffice:latest 运行 docker run ...

  3. OnlyOffice DocumentServer安装说明

    一.前言(虽然是废话,但值得一看) onlyoffice document server 也叫 onlyoffice editors, 是onlyoffice最核心的服务器. 1. 系统构成 ONLY ...

  4. onlyoffice安装之二:centos7安装

    一:安装依赖 1.添加包含最新Node.js包版本的存储库 curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash - 2.安装最新的NGI ...

  5. 如何安装 ONLYOFFICE Workspace丨安装教程丨使用教程

    ONLYOFFICE Workspace作为安装了 Docker 的 Linux 操作系统的自动安装脚本提供.该脚本将设置 Docker 容器,其中包含ONLYOFFICE 工作区正常工作所需的所有组 ...

  6. 如何在Ubuntu上安装OnlyOffice Docs 7.1?

    如何在Ubuntu上安装OnlyOffice Docs 7.1? 什么是OnlyOffice Docs? OnlyOffice Docs是一套在线办公软件,可以打开阅读并编辑文档.表格和幻灯片文件,完 ...

  7. Linux环境下安装onlyoffice

    声明:写这篇文章只是想记录一下自己的安装过程,大家可以滑到文末按照官方文档或者我参考的那篇博客去安装,不喜,勿喷,谢谢. Linux环境下安装onlyoffice 一.散装的方式安装 1.安装node ...

  8. docker安装nextcloud+onlyoffice+https

    onlyoffice证书安装 [root@controller certs]# clear [root@controller certs]# docker ps -a CONTAINER ID IMA ...

  9. 如何使用 Docker 来安装 ONLYOFFICE Workspace 12.0?

    如何使用 Docker 来安装 ONLYOFFICE Workspace 12.0? 什么是 ONLYOFFICE Workspace? ONLYOFFICE Workspace ONLYOFFICE ...

最新文章

  1. 解决ubuntu修改密码 Module is unknow报错
  2. 《Java特种兵》1.3 简单数字游戏玩一玩
  3. object如何转换为int_如何使用Python将语音转换为文本
  4. Codeforces Round #632 (Div. 2) C. Eugene and an array 思维 + 前缀和
  5. odbc驱动程序管理器连接未打开_Windows 10 怎么修复 Windows 中的 Wi-Fi 连接问题,我教你...
  6. Android 系统性能优化(39)---Android内存优化之三:打开MAT中的Bitmap原图
  7. Centos7配置IP地址和DNS
  8. git 创建webpack项目_从 0 开始构建 webpack 项目【Webpack Book 翻译】
  9. 游戏开发之运算符重载(C++基础)
  10. (16)数据结构-并查集
  11. 领域建模——事件风暴
  12. 主板后置音频接口图解_图解主板前置音频线接法(一)
  13. naxtTick获取服务器数据
  14. android------之高德地图实现定位和3D地图显示
  15. Super-Auto-Refresh_v2.5.1实现谷歌浏览器定时刷新
  16. java text to speech_Java TextToSpeech.speak方法代碼示例
  17. 手机中怎么快速去视频水印
  18. 河南中医药大学计算机学院,计算机教学部教师到河南中医药大学信息技术学院学习考察专业建设...
  19. 实现一个app的签到功能,没你想的那么复杂~
  20. C#中如何直接引用类的一个函数?

热门文章

  1. 夜莺(Flashcat)V6监控(一):介绍及其部署
  2. PostgreSQL 表 行数统计
  3. 我的世界虚拟服务器架设,我的世界Minecraft服务器架设教程_服务器怎么建立
  4. C++ Primer 第五版 课后章节练习答案 第一、二章
  5. Android 来电(包括铃声),短信拦截的实现方法
  6. JavaScript China城市联动
  7. JAVA计算机毕业设计中学生作文大赛管理平台Mybatis+源码+数据库+lw文档+系统+调试部署
  8. 亚商投资顾问早餐FM/0310易纲谈金融监管改革
  9. Javascrpit特效之打字机效果
  10. GWAS中的名称概念