99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

用ONLYOFFICE將在線文檔編輯器集成到PythonWeb應用程序中的方法

本篇內容介紹了“用ONLYOFFICE將在線文檔編輯器集成到Python Web應用程序中的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

創新互聯公司專注為客戶提供全方位的互聯網綜合服務,包含不限于網站制作、成都網站建設、漢中網絡推廣、小程序設計、漢中網絡營銷、漢中企業策劃、漢中品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯公司為所有大學生創業者提供漢中建站搭建服務,24小時服務熱線:13518219792,官方網址:www.yijiale78.com

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>

現在我們需要添加帶有 id 的 div 標簽,打開文檔編輯器:

<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 /callbackdef 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() 的調用,負責初始化函數自身 id 和 name 變量。

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.id 和 editorConfig.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 文檔。

“用ONLYOFFICE將在線文檔編輯器集成到Python Web應用程序中的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!

網站名稱:用ONLYOFFICE將在線文檔編輯器集成到PythonWeb應用程序中的方法
網站URL:http://www.yijiale78.com/article38/gjhosp.html

成都網站建設公司_創新互聯,為您提供網站維護網站營銷網站收錄面包屑導航定制開發營銷型網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作