本篇内容介绍了“用ONLYOFFICE将在线文档编辑器集成到PythonWeb应用程序中的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
ONLYOFFICE是根据GNUAGPLv.3许可证条款分发的开源协作办公套件。它包含三个用于文本文档、电子表格和演示文稿的编辑器,并具有以下功能:
通过API,开发人员可以将ONLYOFFICE编辑器集成到网站和利用程序设计语言编写的应用程序中,并能配置和管理编辑器。
流行的协作解决方案的成功集成案例有很多,如Nextcloud、ownCloud、Alfresco、Confluence和SharePoint,都是通过ONLYOFFICE提供的官方即用型连接器实现的。
实际的集成案例之一是ONLYOFFICE编辑器与以C#编写的开源协作平台的集成。该平台具有文档和项目管理、CRM、电子邮件聚合器、日历、用户数据库、博客、论坛、调查、Wiki和即时通讯程序的功能。
将在线编辑器与CRM和项目模块集成,你可以:
在“邮件”模块中,你可以关联存储在“文档模块”中的文件,或者将指向所需文档的链接插入到邮件正文中。当ONLYOFFICE用户收到带有附件的文档的消息时,他们可以:下载附件、在浏览器中查看文件、打开文件进行编辑或将其保存到“文档模块”。如上所述,如果格式不同于OOXML,则文件将自动转换为.docx、.xlsx、.pptx,并且其副本也将以原始格式保存。
在本文中,你将看到ONLYOFFICE与最流行的编程语言之一的Python编写的文档管理系统的集成过程。以下步骤将向你展示如何创建所有必要的部分,以使在DMS(文档管理系统DocumentManagementSystem)界面内的文档中可以进行协同工作成为可能:查看、编辑、协同编辑、保存文件和用户访问管理,并可以作为服务的示例集成到Python应用程序中。
首先,创建集成过程的关键组件:ONLYOFFICE文档服务器和用Python编写的文件管理系统。
要安装ONLYOFFICE文档服务器,你可以从多个安装选项中进行选择:编译GitHub上可用的源代码,使用.deb或.rpm软件包亦或Docker镜像。
我们推荐使用下面这条命令利用Docker映像安装文档服务器和所有必需的依赖。请注意,选择此方法,你需要安装最新的Docker版本。
dockerrun-itd-p80:80onlyoffice/documentserver-de1.2、利用Python开发DMS如果已经拥有一个,请检查它是否满足以下条件:
对于该应用程序,我们将使用Bottle框架。我们将使用以下命令将其安装在工作目录中:
pipinstallbottle然后我们创建应用程序代码main.py和模板index.tpl。
我们将以下代码添加到main.py文件中:
要读取这些文件的名称,我们使用listdir组件(模块):
fromosimportlistdir现在让我们为文件夹中的所有文件名创建一个变量:
%forfileinsample_files:{{file}}%end我们重新启动应用程序以查看页面上的文件名列表。
使这些文件可用于所有应用程序用户的方法如下:
@get("/files/")defshow_sample_files(filepath):returnstatic_file(filepath,root="files")2、查看文档所有组件准备就绪后,让我们添加函数以使编辑者可以利用应用接口操作。
第一个选项使用户可以打开和查看文档。连接模板中的文档编辑器API:
editor_url是文档编辑器的链接接口。
打开每个文件以供查看的按钮:
要打开编辑器,必须调用调用一个函数:
DocEditor函数有两个参数:将在其中打开编辑器的元素id和带有编辑器设置的JSON。在此示例中,使用了以下必需参数:
我们还可以添加将在编辑器中显示的title。
接下来,我们可以在Python应用程序中查看文档。
首先,添加“Edit”(编辑)按钮:
现在创建3个函数:
destroyEditor被调用以关闭一个打开的编辑器。
你可能会注意到,edit()函数中缺少editorConfig参数,因为默认情况下它的值是:{"mode":"edit"}。
现在,我们拥有了打开文档以在Python应用程序中进行协同编辑的所有功能。
通过在编辑器中设置对同一文档使用相同的document.key来实现协同编辑。如果没有此键值,则每次打开文件时,编辑器都会创建编辑会话。
为每个文档设置唯一键,以使用户连接到同一编辑会话时进行协同编辑。密钥格式应为以下格式:filename+"_key"。下一步是将其添加到当前文档的所有配置中。
document.key用于查找文件的旧版本并将其替换为新版本。由于这里没有任何数据库,因此仅使用callbackUrl发送文件名。
在editorConfig.callbackUrl的设置中指定callbackUrl参数并将其添加到edit()方法中:
如果应用中有用户,并且你需要查看谁在编辑文档,请在编辑器的配置中输入其标识符(id和name)。