Python+onlyoffice 实现在线word编辑

onlyoffice部署

yml 复制代码
version: "3"
services:
	onlyoffice:
	    image: onlyoffice/documentserver:7.5.1
	    container_name: onlyoffice
	    restart: always
	    environment:
	      - JWT_ENABLED=false
	        #- USE_UNAUTHORIZED_STORAGE=true
	        #- ONLYOFFICE_HTTPS_HSTS_ENABLED=false
	
	    ports:
	      - "8080:80"
	        # - "8443:443"
	
	    volumes:
	      - ./data/onlyoffice/log:/var/log/onlyoffice
	      - ./data/onlyoffice/data:/var/www/onlyoffice/Data
	      - ./data/onlyoffice/lib:/var/lib/onlyoffice
	      - ./data/onlyoffice/postgresql:/var/lib/postgresql
	      # - ./default.json:/etc/onlyoffice/documentserver/default.json

修改default.json

docker cp onlyoffice:/etc/onlyoffice/documentserver/default.json ./

修改以下值为:

json 复制代码
...
"request-filtering-agent" : {
				"allowPrivateIPAddress": true,
				"allowMetaIPAddress": true
			},
...

在docker-compose中添加挂载:

- ./default.json:/etc/onlyoffice/documentserver/default.json

前端代码

保存为 test.html

html 复制代码
<!DOCTYPE html>
<html>

<head>

    <script type='text/javascript' src='http://IP:PORT/web-apps/apps/api/documents/api.js'></script>
    <style>
        html {
            height: 100%;
            width: 100%;
            padding: 0;
            margin: 0;
        }

        body {
            height: 100%;
            width: 100%;
            padding: 0;
            margin: 0;
        }
    </style>


</head>


<body>
    <div id="placeholder"></div>
    <script language="javascript" type="text/javascript">
        var docEditor = new DocsAPI.DocEditor("placeholder", {
            "document": {
                // 文件类型
                "fileType": "docx",
                // 每次需要重新生成随机字符串
                "key": "adfgadfgadfgad",
                // 标题
                "title": "test.docx",
                // 文档地址,GET
                "url": "http://IP:PORT/api/file?name=test.docx"
            },
            "documentType": "word",
            "editorConfig": {
                // 保存文档的回调地址, POST
                "callbackUrl": "http://IP:PORT/api/file?name=test.docx",
                // 查看模式
                // "mode": "view",
                // 编辑模式
                "mode": "edit",
                // 中文 
                "lang": "zh-CN",
                "customization": {
                    // 插件
                    "plugins":false,
                    // 关于
                    "about": false,
                    // 自动保存
                    "autosave":true,
                    // 聊天
                    "chat":false,
                    // 批注
                    "comments":false,
                    // 帮助
                    "help":false,
                }
            }
        });
    </script>
</body>

</html>

python回调接口

python 复制代码
import requests
from flask import Flask, request

app = Flask(__name__)

@app.get("/api/file")
def get_file():
	file_path = "/data/test.docx"
    return make_response(send_file(file_path, as_attachment=True))


@app.post("/api/file")
def save_file():
	file_path = "/data/test.docx"
    callback_obj = request.get_json()
    print(callback_obj)
    status = callback_obj.get("status", -1)
	
    if status == 2 or status == 3 or status == 6:
        try:
            r = requests.get(callback_obj["url"])
            with open(file_path, "wb") as f:
                f.write(r.content)
        except Exception as e:
            print("保存错误:", e)
            return {"error": 1}

    return {"error": 0}
相关推荐
aike13ky11 天前
如何在 Vue 应用中嵌入 ONLYOFFICE 编辑器
前端·javascript·vue.js·onlyoffice
家庭云计算专家12 天前
群晖如何开启及使用ssh:小白用户上手指南-家庭云计算专家
运维·云计算·ssh·onlyoffice
家庭云计算专家13 天前
ONLYOFFICE 协作空间 企业版使用秘籍-5.企业电子文件如何管理?便于查找、访问和协作,轻松提升效率
大数据·运维·人工智能·onlyoffice·协作空间·onlyoffice开发版
CodeCraft Studio14 天前
ONLYOFFICE Jira 集成应用程序 4.0.0 发布,含新的文件格式支持等多个重大更新!
pdf·powerpoint·onlyoffice·jira
家庭云计算专家20 天前
ONLYOFFICE 的AI技巧-1.集成OCR、文本转图像、电子表格集成等新功能
人工智能·ocr·onlyoffice·协作空间
ONLYOFFICE21 天前
ONLYOFFICE协作空间API指南:使用JavaScript SDK为每个用户结构化协作房间
javascript·编辑器·onlyoffice·office·文档编辑与协作
家庭云计算专家1 个月前
ONLYOFFICE协作空间3.1.1 企业版 介绍及部署说明:家庭云计算专家
运维·服务器·云计算·onlyoffice·协作空间
ONLYOFFICE1 个月前
ONLYOFFICE文档API:更强的安全功能
编辑器·onlyoffice·数据安全·文档协作
ONLYOFFICE2 个月前
集成 ONLYOFFICE 与 AI 插件,为您的服务带来智能文档编辑器
人工智能·ai·编辑器·onlyoffice·文档编辑器·文档预览·文档协作
家庭云计算专家2 个月前
一键设置动态域名+ipv6内网直通访问ssh服务-家庭云计算专家
运维·docker·容器·云计算·ssh·onlyoffice