标签 ONLYOFFICE 下的文章

ONLYOFFICE Docs 7.1 带来了期待已久的针对文档、电子表格以及演示文稿编辑器的更新。对 ARM 的支持更是画龙点睛之笔。

onlyoffice 7.1

ONLYOFFICE,被认为是 最佳的微软 Office 替代品 之一,刚刚发布了最新的 7.1 版本更新。

或许你不了解,ONLYOFFICE 可以在自托管的服务器(例如 Nextcloud)或者桌面上在线使用。

这个版本最为激动人心的变化就是初步支持了基于 ARM 的设备,例如树莓派。

接下来请让我们一起看看有什么新的变化。

ONLYOFFICE 7.1 : 新变化

除了对 ARM 的支持,ONLYOFFICE 7.1 还提供了如下新功能:

  • 一个全新的 PDF、XPS 和 DjVu 文件查看器
  • 更方便和可定制的图形选项
  • 电子表格打印预览
  • 演示文稿中的动画
  • 支持 SmartArt 对象

ARM 兼容

树莓派这样的基于 ARM 的设备正变得越来越热门,许多人已经期待了许久 ONLYOFFICE 对 ARM 架构的支持。

随着 7.1 版本的发布,ONLYOFFICE Docs 现在可以在所有 ARM64 设备上运行。由于 ARM 设备的效率和安全性的提高,我认为这将对 ONLYOFFICE 的未来产生很大的促进作用。

全新的 PDF、XPS 和 DjVu 文件查看器

onlyoffice

这是许多其他办公软件多年来的一个关键功能。从 ONLYOFFICE 7.1 开始,用户现在可以更方便地使用文档编辑器来查看 PDF、XPS 和 DjVu 文件。

新的视图选项卡为用户提供了一个页面缩略图视图和一个导航栏,其视图更为紧凑和简化。

此外,用户现在还可以将 PDF 文件转换为 DOCX 文件,以便对其进行编辑。因此,我们不用再额外打开其他软件进行处理了,这将显著优化现有的工作流并消除瓶颈。

选择和编辑图形更加方便

onlyoffice

图形做为现代办公软件的特性,在许多时候并没能发挥足够的作用。尽管 ONLYOFFICE 拥有这些功能已经有一段时间了,但它们在使用时总是相当笨重。

在 ONLYOFFICE 7.1 中,重新设计的图形选择菜单使得这种情况得到了改变。这个新的菜单与微软 Office 的同类产品非常相似,每个图标都可以从菜单中看到。

此外,它现在可以显示最近使用的图形,使批量插入图形更加容易。

图形的最后一项改进是能够使用鼠标来编辑它们。对于那些熟悉 Inkscape 等图形设计软件的人来说,这将会相当得心应手。通过简单地拖动点,你将可以在短时间内创建一个独特的形状。

电子表格的打印预览

我相信每个人都发生过由于一个简单的错误而导致打印出现问题的情况。此前其他程序早已经解决了这个问题,但在 ONLYOFFICE 电子表格编辑器中一直没有这个功能。

新版本终于引入了“打印预览”,这将会显著改善上述的情况。

这并不算什么十分新颖的更新,只是说它补齐了短板并且可以节省纸张和打印耗材。

改进的动画页面,便捷的剪切和复制

针对需要经常使用演示文稿的用户而言,这个版本增加了一个单独的动画标签,使动画的插入变得更为容易。

ONLYOFFICE 7.1 演示文稿编辑器现在支持各种动画,以及便捷地将一页幻灯片移动以及复制的能力。

SmartArt 对象的支持

SmartArt 是一种在文档、演示文稿和电子表格中便捷地制作自定义图形的工具。然而,它一直是微软办公软件的一个功能。虽然其他各种应用程序对该格式有不同程度的支持,但它们并不能与微软 Office 相媲美。

幸运的是,ONLYOFFICE 7.1 现在完全支持这种格式,并且没有任何乱码,仿佛原生的一般。用户将不再需要和以前一样在将 SmartArt 图形转换为普通图形和数字,便于无缝切换。

其他变化

ONLYOFFICE 7.1 的其他重要改进包括:

  • 新的客户端语言:加利西亚语和阿塞拜疆语
  • 在受密码保护的文件中,能够在输入密码的同时查看密码
  • OFORM 文件支持缩放选项
  • 能够按用户组过滤评论
  • 支持金字塔图表
  • 支持金字塔柱状图
  • 支持垂直和水平圆柱图
  • 支持垂直和水平圆锥图
  • 上下文菜单中的移动和复制幻灯片选项
  • 公式工具提示
  • 新的货币格式支持

若想了解全部新特性,请见 发布日志

下载 ONLYOFFICE 7.1

总的来说,ONLYOFFICE 7.1 是一个兼容 ARM 并且功能更为丰富的版本。

所有版本(企业版、开发版者、社区版)都有更新。

下载方面提供了很多不同的软件包,包括用于 ARM 版本的 Docker 镜像、 Snap 软件包以及用于云供应商的即点即用选项。你可以前往下载页面,寻找最合适的安装程序。

下载页面同时列出了安装的官方指南。

获取 ONLYOFFICE 7.1

你是否已经尝试了新版本呢?


via: https://news.itsfoss.com/onlyoffice-7-1-release/

作者:Jacob Crume 选题:lkxed 译者:PeterPan0106 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

ONLYOFFICE 是根据 GNU AGPL v.3 许可证条款分发的开源协作办公套件。它包含三个用于文本文档、电子表格和演示文稿的编辑器,并具有以下功能:

  • 查看,编辑和协同编辑 .docx.xlsx.pptx 文件。OOXML 作为一种核心格式,可确保与 Microsoft Word、Excel 和 PowerPoint 文件的高度兼容性。
  • 通过内部转换为 OOXML,编辑其他流行格式(.odt.rtf.txt.html.ods.csv.odp)。
  • 熟悉的选项卡式界面。
  • 协作工具:两种协同编辑模式(快速和严谨),跟踪更改,评论和集成聊天。
  • 灵活的访问权限管理:完全访问权限、只读、审阅、表单填写和评论。
  • 使用 API 构建附加组件。
  • 250 种可用语言和象形字母表。

通过 API,开发人员可以将 ONLYOFFICE 编辑器集成到网站和利用程序设计语言编写的应用程序中,并能配置和管理编辑器。

要集成 ONLYOFFICE 编辑器,我们需要一个集成应用程序来连接编辑器(ONLYOFFICE 文档服务器)和服务。 要在你的界面中使用编辑器,因该授予 ONLYOFFICE 以下权限:

  • 添加并执行自定义代码。
  • 用于下载和保存文件的匿名访问权限。这意味着编辑器仅与服务器端的服务通信,而不包括客户端的任何用户授权数据(浏览器 cookies)。
  • 在用户界面添加新按钮(例如,“在 ONLYOFFICE 中打开”、“在 ONLYOFFICE 中编辑”)。
  • 开启一个新页面,ONLYOFFICE 可以在其中执行脚本以添加编辑器。
  • 能够指定文档服务器连接设置。

流行的协作解决方案的成功集成案例有很多,如 Nextcloud、ownCloud、Alfresco、Confluence 和 SharePoint,都是通过 ONLYOFFICE 提供的官方即用型连接器实现的。

实际的集成案例之一是 ONLYOFFICE 编辑器与以 C# 编写的开源协作平台的集成。该平台具有文档和项目管理、CRM、电子邮件聚合器、日历、用户数据库、博客、论坛、调查、Wiki 和即时通讯程序的功能。

将在线编辑器与 CRM 和项目模块集成,你可以:

  • 文档关联到 CRM 时机和容器、项目任务和讨论,甚至创建一个单独的文件夹,其中包含与项目相关的文档、电子表格和演示文稿。
  • 直接在 CRM 或项目模块中创建新的文档、工作表和演示文稿。
  • 打开和编辑关联的文档,或者下载和删除。
  • 将联系人从 CSV 文件批量导入到 CRM 中,并将客户数据库导出为 CSV 文件。

在“邮件”模块中,你可以关联存储在“文档模块”中的文件,或者将指向所需文档的链接插入到邮件正文中。 当 ONLYOFFICE 用户收到带有附件的文档的消息时,他们可以:下载附件、在浏览器中查看文件、打开文件进行编辑或将其保存到“文档模块”。 如上所述,如果格式不同于 OOXML ,则文件将自动转换为 .docx.xlsx.pptx,并且其副本也将以原始格式保存。

在本文中,你将看到 ONLYOFFICE 与最流行的编程语言之一的 Python 编写的文档管理系统的集成过程。 以下步骤将向你展示如何创建所有必要的部分,以使在 DMS( 文档管理系统 Document Management System )界面内的文档中可以进行协同工作成为可能:查看、编辑、协同编辑、保存文件和用户访问管理,并可以作为服务的示例集成到 Python 应用程序中。

1、前置需求

首先,创建集成过程的关键组件:ONLYOFFICE 文档服务器 和用 Python 编写的文件管理系统。

1.1、ONLYOFFICE 文档服务器

要安装 ONLYOFFICE 文档服务器,你可以从多个安装选项中进行选择:编译 GitHub 上可用的源代码,使用 .deb.rpm 软件包亦或 Docker 镜像。

我们推荐使用下面这条命令利用 Docker 映像安装文档服务器和所有必需的依赖。请注意,选择此方法,你需要安装最新的 Docker 版本。

docker run -itd -p 80:80 onlyoffice/documentserver-de

1.2、利用 Python 开发 DMS

如果已经拥有一个,请检查它是否满足以下条件:

  • 包含需要打开以查看/编辑的保留文件
  • 允许下载文件

对于该应用程序,我们将使用 Bottle 框架。我们将使用以下命令将其安装在工作目录中:

pip install bottle

然后我们创建应用程序代码 main.py 和模板 index.tpl

我们将以下代码添加到 main.py 文件中:

from bottle import route, run, template, get, static_file # connecting the framework and the necessary components
@route('/') # setting up routing for requests for /
def index():
    return template('index.tpl') # showing template in response to request

run(host="localhost", port=8080) # running the application on port 8080

一旦我们运行该应用程序,点击 http://localhost:8080 就会在浏览器上呈现一个空白页面 。 为了使文档服务器能够创建新文档,添加默认文件并在模板中生成其名称列表,我们应该创建一个文件夹 files 并将3种类型文件(.docx.xlsx.pptx)放入其中。

要读取这些文件的名称,我们使用 listdir 组件(模块):

from os import listdir

现在让我们为文件夹中的所有文件名创建一个变量:

sample_files = [f for f in listdir('files')]

要在模板中使用此变量,我们需要通过 template 方法传递它:

def index():
    return template('index.tpl', sample_files=sample_files)

这是模板中的这个变量:

% for file in sample_files:
  <div>
    <span>{{file}}</span>
  </div>
% end

我们重新启动应用程序以查看页面上的文件名列表。

使这些文件可用于所有应用程序用户的方法如下:

@get("/files/<filepath:re:.*\.*>")
def show_sample_files(filepath):
    return static_file(filepath, root="files")

2、查看文档

所有组件准备就绪后,让我们添加函数以使编辑者可以利用应用接口操作。

第一个选项使用户可以打开和查看文档。连接模板中的文档编辑器 API :

<script type="text/javascript" src="editor_url/web-apps/apps/api/documents/api.js"></script>

editor_url 是文档编辑器的链接接口。

打开每个文件以供查看的按钮:

<button onclick="view('files/{{file}}')">view</button>

现在我们需要添加带有 iddiv 标签,打开文档编辑器:

<div id="editor"></div>

要打开编辑器,必须调用调用一个函数:

<script>
function view(filename) {
    if (/docx$/.exec(filename)) {
        filetype = "text"
    }
    if (/xlsx$/.exec(filename)) {
        filetype = "spreadsheet"
    }
    if (/pptx$/.exec(filename)) {
        filetype = "presentation",
        title: filename
    }
​
    new DocsAPI.DocEditor("editor",
        {
            documentType: filetype,
            document: {
                url: "host_url" + '/' + filename,
                title: filename
            },
            editorConfig: {mode: 'view'}
        });
  }
</script>

DocEditor 函数有两个参数:将在其中打开编辑器的元素 id 和带有编辑器设置的 JSON。 在此示例中,使用了以下必需参数:

  • documentType 由其格式标识(.docx.xlsx.pptx 用于相应的文本、电子表格和演示文稿)
  • document.url 是你要打开的文件链接。
  • editorConfig.mode

我们还可以添加将在编辑器中显示的 title

接下来,我们可以在 Python 应用程序中查看文档。

3、编辑文档

首先,添加 “Edit”(编辑)按钮:

<button onclick="edit('files/{{file}}')">edit</button>

然后创建一个新功能,打开文件进行编辑。类似于查看功能。

现在创建 3 个函数:

<script>
    var editor;
    function view(filename) {
        if (editor) {
            editor.destroyEditor()
        }
        editor = new DocsAPI.DocEditor("editor",
            {
                documentType: get_file_type(filename),
                document: {
                    url: "host_url" + '/' + filename,
                    title: filename
                },
                editorConfig: {mode: 'view'}
            });
    }

    function edit(filename) {
        if (editor) {
            editor.destroyEditor()
        }
        editor = new DocsAPI.DocEditor("editor",
            {
                documentType: get_file_type(filename),
                document: {
                    url: "host_url" + '/' + filename,
                    title: filename
                }
            });
    }

    function get_file_type(filename) {
        if (/docx$/.exec(filename)) {
            return "text"
        }
        if (/xlsx$/.exec(filename)) {
            return "spreadsheet"
        }
        if (/pptx$/.exec(filename)) {
            return "presentation"
        }
    }
</script>

destroyEditor 被调用以关闭一个打开的编辑器。

你可能会注意到,edit() 函数中缺少 editorConfig 参数,因为默认情况下它的值是:{"mode":"edit"}

现在,我们拥有了打开文档以在 Python 应用程序中进行协同编辑的所有功能。

4、如何在 Python 应用中利用 ONLYOFFICE 协同编辑文档

通过在编辑器中设置对同一文档使用相同的 document.key 来实现协同编辑。 如果没有此键值,则每次打开文件时,编辑器都会创建编辑会话。

为每个文档设置唯一键,以使用户连接到同一编辑会话时进行协同编辑。 密钥格式应为以下格式:filename +"_key"。下一步是将其添加到当前文档的所有配置中。

document: {
    url: "host_url" + '/' + filepath,
    title: filename,
    key: filename + '_key'
},

5、如何在 Python 应用中利用 ONLYOFFICE 保存文档

每次我们更改并保存文件时,ONLYOFFICE 都会存储其所有版本。 让我们仔细看看它是如何工作的。 关闭编辑器后,文档服务器将构建要保存的文件版本并将请求发送到 callbackUrl 地址。 该请求包含 document.key和指向刚刚构建的文件的链接。

document.key 用于查找文件的旧版本并将其替换为新版本。 由于这里没有任何数据库,因此仅使用 callbackUrl 发送文件名。

editorConfig.callbackUrl 的设置中指定 callbackUrl 参数并将其添加到 edit() 方法中:

 function edit(filename) {
        const filepath = 'files/' + filename;
        if (editor) {
            editor.destroyEditor()
        }
        editor = new DocsAPI.DocEditor("editor",
            {
                documentType: get_file_type(filepath),
                document: {
                    url: "host_url" + '/' + filepath,
                    title: filename, 
                    key: filename + '_key'
                }
                ,
                editorConfig: {
                    mode: 'edit',
                    callbackUrl: "host_url" + '/callback' + '&amp;filename=' + filename  // add file name as a request parameter
                }
            });
    }

编写一种方法,在获取到 POST 请求发送到 /callback 地址后将保存文件:

@post("/callback") # processing post requests for /callback
def callback():
    if request.json['status'] == 2:
        file = requests.get(request.json['url']).content
        with open('files/' + request.query['filename'], 'wb') as f:
            f.write(file)
    return "{\"error\":0}"
​

# status 2 是已生成的文件,当我们关闭编辑器时,新版本的文件将保存到存储器中。

6、管理用户

如果应用中有用户,并且你需要查看谁在编辑文档,请在编辑器的配置中输入其标识符(idname)。

在界面中添加选择用户的功能:

<select id="user_selector" onchange="pick_user()">
    <option value="1" selected="selected">JD</option>
    <option value="2">Turk</option>
    <option value="3">Elliot</option>
    <option value="4">Carla</option>
</select>

如果在标记 <script> 的开头添加对函数 pick_user() 的调用,负责初始化函数自身 idname 变量。

function pick_user() {
    const user_selector = document.getElementById("user_selector");
    this.current_user_name = user_selector.options[user_selector.selectedIndex].text;
    this.current_user_id = user_selector.options[user_selector.selectedIndex].value;
}

使用 editorConfig.user.ideditorConfig.user.name 来配置用户设置。将这些参数添加到文件编辑函数中的编辑器配置中。

function edit(filename) {
    const filepath = 'files/' + filename;
    if (editor) {
        editor.destroyEditor()
    }
    editor = new DocsAPI.DocEditor("editor",
        {
            documentType: get_file_type(filepath),
            document: {
                url: "host_url" + '/' + filepath,
                title: filename
            },
            editorConfig: {
                mode: 'edit',
                callbackUrl: "host_url" + '/callback' + '?filename=' + filename,
                user: {
                    id: this.current_user_id,
                    name: this.current_user_name
                }
            }
        });
}

使用这种方法,你可以将 ONLYOFFICE 编辑器集成到用 Python 编写的应用程序中,并获得用于在文档上进行协同工作的所有必要工具。有关更多集成示例(Java、Node.js、PHP、Ruby),请参考官方的 API 文档


via: https://opensourceforu.com/2019/09/integrate-online-documents-editors-into-a-python-web-app-using-onlyoffice/

作者:Aashima Sharma 选题:lujun9972 译者:stevenzdg988 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

“多年前由一些紧张兮兮的、带有强迫症的助理开发的 Bulletin,只是一个放在共享文件夹中只有 Emily 和我可以访问的 Word 文档而已。同一时间我们只有一个人可以打开它并添加消息、想法,或者给条目列表上增加问题。然后我们再打印出更新后的版本并放到我桌子架上的剪贴板,并在完成时删除旧的内容。”(——《穿普拉达的女王》,劳伦·魏丝伯格著 )

直到今天人们仍然在使用这样的“协同编辑”,只有一个人可以打开共享文件,对其进行更改,然后告诉其它人什么时候修改了什么。

ONLYOFFICE 是一款集成了文档、电子邮件、事件、任务和客户关系管理工具的开源在线办公套件。

使用 ONLYOFFICE 办公套件,一组人可以同时编辑文本、电子表格或者在浏览器上进行展示。可以直接在他们的文档上留下评论并用其中集成的聊天工具和其他人沟通。最后,可以保存文档为 PDF 文件并打印。作为额外的增强功能,它还能浏览文档历史并在如果需要时恢复到之前的修订/版本。

在这篇教程中,我会介绍如何使用 免费版 ONLYOFFICE 部署你自己的在线办公套件,免费版 ONLYOFFICE 是 ONLYOFFICE 在 GNU AGPL v3 协议下发布的自托管版本。

在 Linux 上安装 ONLYOFFICE

安装 ONLYOFFICE 要求在你的 Linux 系统上要有 mono(4.0.0 或更高版本)、nodejs、libstdc++6、nginx 和 mysql-server。为了简化安装过程并避免依赖错误,我使用 Docker 安装 ONLYOFFICE。在这种情况下只需要安装一种依赖 - Docker

提醒一下,Docker 是一个在软件容器中自动部署应用的开源项目。如果在你的 Linux 系统上 Docker 不可用,首先根据 基于 Debian基于 Red-Hat 系统的 Docker 安装指令安装它。

注意,你需要 Docker 1.4.1 或更高版本。要检查安装的 Docker 版本,可以使用下面的命令。

$ docker version 

在一个 Docker 容器中试用 ONLYOFFICE,只需要执行下面的命令:

$ sudo docker run -i -t -d --name onlyoffice-document-server onlyoffice/documentserver
$ sudo docker run -i -t -d -p 80:80 -p 443:443 --link onlyoffice-document-server:document_server onlyoffice/communityserver

这些命令会下载为了能正常运行带有所有所需依赖的 官方 ONLYOFFICE Docker 镜像

也可以在 Linux 服务器上单独安装 ONLYOFFICE 在线编辑器,并通过提供的 API 轻松地集成到你的站点或云应用。

运行自行托管的在线 Office

要打开你的在线 office,在你浏览器的地址栏输入 localhost(http://IP地址/)。会打开欢迎页面:

输入一个密码并指定下次访问你的 office 所使用的电子邮件地址。

在线编辑文档

首先点击 Document 链接打开 the My Documents 文件夹。

STEP 1. 选择需要编辑的文档

要在这里新建一个新文档,点击左上角的 “Create” 按钮,从下拉列表中选择文件类型。要编辑保存在你硬盘中的文件,点击 Create 按钮旁边的 Upload 按钮上传文件到 Document

STEP 2. 共享文档

如果你在 My Documents 文件夹中,用右边的 Share 按钮,或者如果你在文档中,用 File >> Document Info ... >> Change Access Rights

在打开的 Sharing Settings 窗口,点击左边的 People outside portal 链接,打开到文档的访问,并通过启用 Full Access 单选按钮给予完全访问权限。

最后,选择一种方式共享到你文档的链接,通过 email 或者你可用的一种社交网络:Google+、Facebook 或 Twitter 发送。

STEP 3. 开始协同编辑

邀请的人只需要根据提供的链接就可以开始协同编辑文档。

它会自动用不用颜色的虚线将你的合作者编辑的文本段落标记出来。

只要你的其中一个协作者保存了他/她的更改,你会看到在顶部工具栏左上角出现了一个提示标签,表示这里有更新。

点击 Save 图标保存更改并更新。然后会高亮所有的更新。

STEP 4. 和协作者互动

要写评论,用鼠标选择一个文本段落,右击并从上下文菜单中选择 Add comment 选项。

要和协作者实时互动,可以使用集成的聊天工具。Chat 面板会列出所有正在编辑文档的用户。点击左侧边栏的 Chat 图标打开它。在 Chat 面板的合适区域输入你的信息开始讨论。

有用的提示

最后,这里有一些你充分利用 ONLYOFFICE 的有用提示。

Tip #1. 在云存储服务例如 ownCloud 上编辑文档

如果你将文档存储在其它网络资源上,例如 Box、Dropbox、Google Drive、OneDrive、SharePoint 或 ownCloud,你可以轻松地和 ONLYOFFICE 同步。

在打开的 ‘Documents’ 模块,点击 Add the account 下面的其中一个图标:Google、Box、DropBox、OneDrive、ownCloud 或 ‘Add account’,并输入所需数据。

Tip #2. 在 iPad 上编辑文档

要随时随地对文件进行修改,我使用 iPad 的 ONLYOFFICE Documents 应用。你可以从 iTune 下载并安装它,然后你需要输入你的 ONLYOFFICE 地址、email 和密码来访问你的文档。功能设置几乎一样。

为了评估 ONLYOFFICE 在线编辑器的功能,你可以使用供个人使用的 云版本


via: http://xmodulo.com/edit-documents-collaboratively-linux.html

作者:Tatiana Kochedykova 译者:ictlyh 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出