简单使用OnlyOffice

Java集成Onlyoffice以及安装和使用示例,轻松实现word、ppt、excel在线编辑功能协同操作,Docker安装Onlyoffice 拉取onlyoffice镜像查看镜像是否下载完成启动onlyoffice以下是将本机的9001端口映射到docker的80端口上,访问时通过服务器ip:9001访问,并且用 -v 将本机机==/data/aws_s3/file-storage==文件夹挂载到docker的 /var/www/onlyoffice/documentserver/web-apps/wsData文件下,后续直接通过http请求读取对应的文件夹打开浏览器输入ip:9001出现以下页面就安装成功。 阅读详情
AI摘要

本文介绍如何使用Docker部署OnlyOffice文档协作编辑器,并提供前端集成示例及SpringBoot后端集成代码。涵盖OnlyOffice的安装步骤、参数配置、前后端交互实现等关键信息。

1 参考网址

# 英文版
https://www.onlyoffice.com
# 中文版
https://www.onlyoffice.com/zh/

# GitHub上的地址
https://github.com/ONLYOFFICE/DocumentServer

# 社区版Docker安装
https://helpcenter.onlyoffice.com/installation/docs-community-install-docker.aspx

# DockerHub地址
https://hub.docker.com/r/onlyoffice/documentserver

# 开发文档
https://api.onlyoffice.com/editors/basic

# 后端参考的demo
https://api.onlyoffice.com/editors/demopreview

# 前端参考的配置地址
https://api.onlyoffice.com/editors/config/editor#createUrl
# 前端自定义编辑参数
https://api.onlyoffice.com/editors/config/editor/customization

2 Docker安装OnlyOffice

2.1 安装onlyoffice

# 下载onlyoffice/documentserver:7.1.1
sudo docker pull onlyoffice/documentserver:7.1.1

# 创建Onlyoffice容器
# 对外端口81
sudo docker run -itd \
--name my_onlyoffice \
--restart=always \
-p 81:80 \
-v /home/onlyoffice/logs:/var/log/onlyoffice  \
-v /home/onlyoffice/data:/var/www/onlyoffice/Data  \
-v /home/onlyoffice/lib:/var/lib/onlyoffice \
-v /home/onlyoffice/db:/var/lib/postgresql  \
onlyoffice/documentserver:7.1.1

2.2 查看服务

默认会跳转到欢迎页面,"192.168.108.200"是我的地址

http://192.168.108.200:81/

在这里插入图片描述

2.3 参数说明

Status返回值说明

https://api.onlyoffice.com/editors/callback#status-descr
status描述
1每次用户连接到文档协同编辑或断开文档协同编辑时,都会收到该消息。
2,3关闭正在编辑的文档10秒钟后,会收到该消息,用户的标识符是最后一个向文档编辑服务发送更改的用户。
4在最后一个用户关闭文档时收到。
6,7在执行强制保存请求时收到。

3 前端代码

注意:容器的宿主机与开发电脑需要在同一个局域网中,保证前端访问后端的IP地址能够访问到。

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>OnlyOffice</title>
</head>
<body style="height:800px">
    <div id="placeholder"></div>

    <script type="text/javascript" src="http://192.168.108.200:81/web-apps/apps/api/documents/api.js"></script>
    <script type="text/javascript">
        var config = {  

            // 设置文档信息
            "document": {
                "fileType": "docx",
                // 文档唯一标识,最大长度128
                "key": "Khirz6zTPdfd7",
                // 文档名称
                "title": "Example Document Title.docx",
                // 文件地址
                "url": "http://192.168.108.1:8080/office/online",
                // 添加权限
                "permissions": {
                    // 设置聊天
                    "chat": true
                }
            },

            // 设置编辑
            "editorConfig": {
                // 设置语言
                "lang": "zh-CN",

                // 两种编辑(edit)和查看(view)
                "mode": "edit",
                // 文件保存时的地址
                "callbackUrl": "http://192.168.108.1:8080/office/save",

                /*
                // 配置用户信息
                "user": {
                    // 用户编号
                    "id": "admin",
                    // 用户名称
                    "name": "管理员"
                },
                */

            },
        };
        var docEditor = new DocsAPI.DocEditor("placeholder", config);
        
    </script>
</body>
</html >

4 SpringBoot使用OnlyOffice

4.1 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.5.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.mason</groupId>
	<artifactId>myonlyoffice</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>myonlyoffice</name>
	<description>myonlyoffice project for Spring Boot</description>
	<properties>
		<java.version>11</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.alibaba.fastjson2</groupId>
			<artifactId>fastjson2</artifactId>
			<version>2.0.10</version>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

4.2 java代码

package com.mason.myonlyoffice.controller;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.springframework.stereotype.Controller;

import org.springframework.util.StreamUtils;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URL;


@Controller
@ResponseBody
@RequestMapping("/office")
public class EditorController {


    @GetMapping("/online")
    public void online(HttpServletResponse response, HttpServletRequest request) {
        try {
            response.setCharacterEncoding("utf-8");
            response.setContentType("application/octet-stream");

            // 读文件输入流
            String filePath = "E:\\onlyoffice.docx";
            InputStream inputStream = new FileInputStream(filePath);

            // 复制文件流
            StreamUtils.copy(inputStream, response.getOutputStream());

            // 关闭输入流
            inputStream.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    @PostMapping(path = "/save")
    public void save(HttpServletResponse response, HttpServletRequest request) {

        try {
            // 获得response信息
            PrintWriter writer = response.getWriter();

            // 获取数据文件信息
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            StreamUtils.copy(request.getInputStream(), byteArrayOutputStream);
            String fileInfoStr = byteArrayOutputStream.toString();
            byteArrayOutputStream.close();

            if (fileInfoStr.isEmpty()) {
                writer.write("request的输入流为空");
                return;
            }

            System.out.println(fileInfoStr);

            // 转化字符串对象转化为JSON对象
            JSONObject fileInfoObj = JSON.parseObject(fileInfoStr);

            // 获取编辑文件的状态
            int status = (Integer) fileInfoObj.get("status");
            int saved = 0;

            // 关闭正在编辑的文档10秒钟后,会收到该消息
            if(status == 2 || status == 3) {
                // 获取文件数据
                try {
                    URL url = new URL((String) fileInfoObj.get("url"));
                    java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();
                    InputStream inputStream = connection.getInputStream();

                    if (inputStream == null){
                        throw new Exception("Stream is null");
                    }

                    // 保存编辑后的数据
                    String path = "E:\\onlyoffice.docx";
                    File file = new File(path);

                    // 复制数据流
                    FileOutputStream outputStream = new FileOutputStream(file);
                    StreamUtils.copy(inputStream, outputStream);

                    // 关闭数据资源
                    outputStream.close();
                    inputStream.close();
                    connection.disconnect();
                } catch (Exception ex) {
                    saved = 1;
                    ex.printStackTrace();
                }
            }

            System.out.println("保存文件成功");
            writer.write("{\"error\":" + saved + "}");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
}

5 截图

在这里插入图片描述

vue2 集成 Onlyoffice 缘起于进行了一次,对比了 Office365、可道云、WPS Office、PageOffice 等厂商,最终敲定了使用 Onlyoffice,故整理了一份 Onlyoffice 从零开始系列教程,这是第一篇。 阅读详情

相关推荐

手把手教你入门 ONLYOFFICE 8.2 版本的新功能

ONLYOFFICE 是一款开源的办公软件,包括文档编辑器、表格编辑器、演示文稿编辑器等,可以在线编辑文档、表格和演示文稿,支持多人实时协作。ONLYOFFICE 的主要特点包括:开源:ONLYOFFICE 是开源软件,可以自由地下载、安装和使用,无需支付任何费用。兼容性:ONLYOFFICE 的文档、表格和演示文稿格式与 Microsoft Office 兼容,可以无缝地打开和保存 Microsoft Office 文件。

VincentYoung的专栏 3519

“协作办公利器”—ONLYOFFICE 入门指南

ONLYOFFICE最大的好处在于协同工作的能力。可以采用ONLYOFFICE为公司的小组建立一个共同的服务器,让同事可以协同工作,避免合并文档的痛苦。对于经常修改需求或者文档操作频繁的小组很实用。在外观上,ONLYOFFICE的功能区模仿了微软Office365功能区的设计风格,用户能快速上手。此外,ONLYOFFICE对微软Office文件格式(.docx.xlsx以及.pptx)的兼容性更好,方便用户与他人共享文件。

颜淡慕潇 6万+

nextcloud和onlyoffice一键简单无脑部署

网上找了好多,配置好麻烦。想简单部署那就自己造轮子,直接用docker-compose部署。 docker-compose.yml 这些都按自己需求设置 MYSQL_ROOT_PASSWORD MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD version: '3' services: web: hostname: web image...

maggie_up 2万+

windows onlyoffice教程

本文只介绍windows的安装使用,linux和windows的操作差不多,如果不想麻烦的直接使用docker安装就可以了;postgresql暗转完后需要创建一个用户角色:onlyoffice,角色账号密码都是onlyoffice。如果已经安转完成onlyoffice的也可以在安装包的文件夹下运行,会重新安装并指定端口;当前命令需要在 onlyoffice的安装包的文件夹下进入cmd,输入命令直接运行即可;没有创建指定的用户,需要在安装onlyoffice安装时,自己更改成相同权限的用户即可;...

HDXxiazai的博客 8506

使用docker在线/离线部署onlyoffice,在线预览/编辑demo

废话不多说,能看到这篇文章的,多半对自己的需求已经很明确了,OnlyOffice能干什么就不描述了,上干货。 安装环境 centos 7+docker,本文是以docker的形式进行onlyoffice部署,docker的方式比较简单。 下面这个是onlyoffice给出的环境要求 CPU: dual core 2 GHz or better RAM:2 GB or more HDD:at lea...

小小的人儿的博客 1万+

如何将ONLYOFFICE与Python应用程序集成

ONLYOFFICE 是一项功能强大的开源服务,可以将文本文档、电子表格和演示文稿编辑功能集成至任何编程语言编写的 Web 应用程序中。在本文中,我们会带你了解如何将ONLYOFFICE集成到你的Python应用程序中。

ONLYOFFICE的官方博客 2864

使用onlyoffice让你轻松实现word、ppt、excel在线编辑功能

了解onlyofficeONLYOFFICE Docs是一个开源办公套件,包括文本文档、电子表格和演示文稿的编辑器。它提供以下功能:1、创建、编辑和查看文本文档、...

IT学习小镇 3万+

onlyoffice实现office文件在线编辑保存

onlyoffice是开源的在线文档编辑软件,支持主流的office格式,可实现文档在线编辑保存,多人协作编辑等场景,是目前我用过的功能最完善且强大的在线office编辑软件;

椰汁菠萝 3469

简单使用HTML集成OnlyOffice

前言 ONLYOFFICE,简单地说,就是将 Word 、Excel、PPT 3 大办公套件搬到了云端,只需要一个浏览器即可以在线使用 Office 的各种功能。 前提条件 确保相应的js文件可以被正常访问 https://documentserver/web-apps/apps/api/documents/api.js 快速入门 新建html文档,引入api.js <script type="text/javascript" src="https://documentserver/web-

一个需求 5358

如何使用UnicodeMath或LaTex在ONLYOFFICE中编写公式

想看解释的请关注后下期分解,这里的动量是个矢量,说明了力、速度、加速度是有方向的,对应的矢量的字母的上方有一个向右的小箭头,这个箭头,在Unicode Math表达式里面如何输入呢?意思就是,施加于物体的外力等于此物体动量的时变率,所以说,用Unicode Math语法规则编写公式更为高效率,因为我们学过数学、物理的都知道,在这里。一个物体当前受到的所有力量的合力,是它当前运动加速度的原因,物体静止时的质量乘以在当前惯性坐标系下测量得到的加速度的值,就是当前物体所受到的合力。

VincentYoung的专栏 1349

CentOS 7下Ollama+Dify+DeepSeek离线部署全攻略(附模型迁移技巧)

本文详细介绍了在CentOS 7无网环境下,从零开始离线部署Ollama、DeepSeek模型与Dify平台的完整实战攻略。内容涵盖基础环境规划、Ollama服务安装、模型文件迁移技巧、Docker引擎离线部署,以及Dify平台与本地Ollama服务的集成配置,为企业内网构建安全、可控的AI应用提供了一套经过验证的解决方案。

weixin_28826521的博客 349

OnlyOffice简单使用记录

安装docker 略 拉取onlyoffice镜像 docker pull onlyoffice/documentserver 启动镜像 sudo docker run -i -t -d -p 8081:8082 onlyoffice/documentserver 访问 浏览器访问 ip:port (镜像所在服务器ip:docker启动镜像所设定的端口),出现下图表示onlyoffice启动成功 Onlyoffice官方文档 文档地址 ...

一直在路上的求知人。 2323

线性模型:AR、MA、ARMA、ARMAX、ARX、ARARMAX、OE、BJ等

线性模型:AR、MA、ARMA、ARMAX、ARX、ARARMAX、OE、BJ等

zephyr_wang的博客 1万+

office办公软件有哪些:试试OnlyOffice(Office办公软件)官网中文版吧 | 使用简单无需onlyoffice使用教程

ONLYOFFICE中文版是一款在国外比较流行的优秀的Office办公软件,据说市场占有率仅次于微软的Microsoft Office,可以帮助大家创建复杂的文档、专业的电子表格、令人赞叹的演示文稿以及可填写的表单,通过基于选项卡的用户界面,用户可以在同一个窗口中处理多个文件。

chaorenqiang的博客 2245

Windows系统监控实战:Grafana+Prometheus+node_exporter保姆级配置指南(含常见问题解决)

本文提供了一份详尽的Windows系统监控实战指南,详细讲解了如何从零部署Grafana、Prometheus和node_exporter(实际为windows_exporter)监控栈。内容涵盖核心组件认知、分步配置解析、高级生产环境考量,并重点针对配置过程中常见的“No Data”问题提供了系统性的排查手册,旨在帮助用户快速搭建稳定可靠的系统资源监控平台。

weixin_29197835的博客 1008

作物生长模型Oryza V3实战1:为什么要研究它

ORYZAV3是水稻生长模拟模型ORYZA2000的最新升级版本(3.5版),作为作物生长模型,它通过数学方法和计算机技术模拟水稻生长发育过程及其与环境条件的相互作用。主要功能包括:模拟不同条件下的水稻生长和产量形成、评估环境胁迫影响、分析土壤碳氮动态以及进行区域尺度模拟。国内应用广泛,科研机构用于气候变化影响评估、灌溉模式比较等研究,并开展参数敏感性分析和应用培训。使用流程分为六个步骤:确定输入参数(气象、土壤、作物三类)、参数校准、设置模拟环境、运行模型、分析结果(输出50个参数)和计算产量(穗干重×收

504

onlyoffice集成实现编辑预览

ONLYOFFICE 文档开发者版ONLYOFFICE Docs 是一款功能强大的在线编辑器,适用于文本文档、电子表格、演示文稿和表格。创建复杂的文档、专业的电子表格和令人惊叹的演示文稿。支持的常用 Office 和文档格式:docx、xlsx、pptx、odt、ods、odp、doc、xls、ppt、pdf、txt、rtf、html、epub、csv。完全兼容 OOXML(Office Open XML)格式。使您的用户能够在您自己的应用程序中在浏览器中在线编辑、共享和协作处理文档。

qq_43548590的博客 1万+

精密加工零件自动报价智能体设计与实现

摘要 本文设计并实现了一个精密加工零件自动报价智能体系统。该系统通过计算机视觉和几何分析技术,自动读取3D图纸(STEP/STL格式),提取影响加工成本的几何特征,实现精准报价。系统采用模块化设计,包含3D模型解析、特征提取、成本计算和报价生成四个核心模块。关键技术包括:使用PythonOCC处理STEP文件,Trimesh处理STL网格;实现体积、表面积、包围盒等基础几何量计算;开发特征提取算法识别复杂曲面、深孔等加工难点;基于规则库进行可加工性评分和成本估算。相比传统人工报价方式,该系统能显著提高报价效

AI的内部世界的博客 112

java集成onlyoffice实现文档在线预览编辑

名称:ONLYOFFICE文档(英文名ONLYOFFICE Docs)开发商软件授权:免费软件(部分高级功能可能需付费)软件平台:支持Windows、Linux、MacOS、Android、iOS等多平台软件版本:不断更新中,如8.1版本等。

xuweilin的博客 4333

HTML金色流星雨(完整代码)

HTML实现金色流星雨动态效果的完整代码。

AIGC 992

【libnice】meson + vs2022,生成win32工程

libnice

突围 947

onlyoffice代码测试

测试使用本地虚似机上装 centos系统和docker方便回调测试,

qq_33082703的博客 658

华为OD机试双机位A卷 - VLAN资源池 (C++ & Python & JAVA & JS & GO)

华为OD机试2025双机位A卷 VLAN资源池,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 879

ONLYOFFICE8.1版本桌面编辑器测评

ONLYOFFICE的桌面编辑器界面设计简洁直观,菜单和工具栏布局合理,易于上手。编辑文档的流畅度很高,响应速度快,用户在没有网络连接的情况下依然能够高效工作。文档、电子表格、演示文稿、PDF表单。现在,ONLYOFFICE 套件的在线版和桌面版都具有功能齐全的 PDF 编辑器,能够以不同方式创建、注释和编辑 PDF 文件。从 8.1 版本开始,ONLYOFFICE PDF 编辑器能够执行以下操作:编辑文本编辑页面菜单和工具栏布局合理应用,上侧工具栏含有各种高效的编辑功能。切换编辑或查看模式。

2302_81115588的博客 1206

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

在国产深度操作系统上如何安装ONLYOFFICE桌面编辑器V7.3

这里是真正把深度操作系统作为桌面操作系统,给具体干活的人直接使用,在该电脑上具体的写文档或者其它的生产活动,这里安装的就是ONLYOFFICE桌面编辑器软件。其它的安装方法,什么添加ONLYOFFICE的软件源、下载安装文件什么的,就统统都不需要了,直接在深度系统自己的软件市场就一切操作都搞定了。类似的,先尝试最简单的安装方式,从其自带的软件市场里搜索安装,直接搜索到ONLYOFFICE Desktop Editor。深度的自己的市场平台的服务器肯定是在国内,所以下载安装的过程非常的快。

VincentYoung的专栏 654

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

编辑器未包含main类型_利用 ONLYOFFICE 将在线文档编辑器集成到 Python Web 应用程序中 | Linux 中国...

导读:通过 API,开发人员可以将 ONLYOFFICE 编辑器集成到网站和利用程序设计语言编写的应用程序中,并能配置和管理编辑器。本文字数:9635,阅读时长大约:12分钟https://linux.cn/article-13037-1.html作者:Aashima Sharma译者:HackerONLYOFFICE是根据 GNU AGPL v.3 许可证条款分发的开源协作办公套件...

weixin_36252618的博客 377

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: Python安装PaddleOCR
下一篇: paddle语音识别
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值