最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何利用ONLYOFFICE將在線文檔編輯器集成到Python Web應(yīng)用程序中?

ONLYOFFICE 是根據(jù) GNU AGPL v.3 許可證條款分發(fā)的開(kāi)源協(xié)作辦公套件。它包含三個(gè)用于文本文檔、電子表格和演示文稿的編輯器,并具有以下功能:

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供城子河網(wǎng)站建設(shè)、城子河做網(wǎng)站、城子河網(wǎng)站設(shè)計(jì)、城子河網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、城子河企業(yè)網(wǎng)站模板建站服務(wù),十年城子河做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

  • 查看,編輯和協(xié)同編輯 .docx、.xlsx、.pptx 文件。OOXML 作為一種核心格式,可確保與 Microsoft Word、Excel 和 PowerPoint 文件的高度兼容性。
  • 通過(guò)內(nèi)部轉(zhuǎn)換為 OOXML,編輯其他流行格式(.odt、.rtf、.txt、.html、.ods.csv、.odp)。
  • 熟悉的選項(xiàng)卡式界面。
  • 協(xié)作工具:兩種協(xié)同編輯模式(快速和嚴(yán)謹(jǐn)),跟蹤更改,評(píng)論和集成聊天。
  • 靈活的訪問(wèn)權(quán)限管理:完全訪問(wèn)權(quán)限、只讀、審閱、表單填寫(xiě)和評(píng)論。
  • 使用 API 構(gòu)建附加組件。
  • 250 種可用語(yǔ)言和象形字母表。

通過(guò) API,開(kāi)發(fā)人員可以將 ONLYOFFICE 編輯器集成到網(wǎng)站和利用程序設(shè)計(jì)語(yǔ)言編寫(xiě)的應(yīng)用程序中,并能配置和管理編輯器。

要集成 ONLYOFFICE 編輯器,我們需要一個(gè)集成應(yīng)用程序來(lái)連接編輯器(ONLYOFFICE 文檔服務(wù)器)和服務(wù)。 要在你的界面中使用編輯器,因該授予 ONLYOFFICE 以下權(quán)限:

  • 添加并執(zhí)行自定義代碼。
  • 用于下載和保存文件的匿名訪問(wèn)權(quán)限。這意味著編輯器僅與服務(wù)器端的服務(wù)通信,而不包括客戶端的任何用戶授權(quán)數(shù)據(jù)(瀏覽器 cookies)。
  • 在用戶界面添加新按鈕(例如,“在 ONLYOFFICE 中打開(kāi)”、“在 ONLYOFFICE 中編輯”)。
  • 開(kāi)啟一個(gè)新頁(yè)面,ONLYOFFICE 可以在其中執(zhí)行腳本以添加編輯器。
  • 能夠指定文檔服務(wù)器連接設(shè)置。

流行的協(xié)作解決方案的成功集成案例有很多,如 Nextcloud、ownCloud、Alfresco、Confluence 和 SharePoint,都是通過(guò) ONLYOFFICE 提供的官方即用型連接器實(shí)現(xiàn)的。

實(shí)際的集成案例之一是 ONLYOFFICE 編輯器與以 C# 編寫(xiě)的開(kāi)源協(xié)作平臺(tái)的集成。該平臺(tái)具有文檔和項(xiàng)目管理、CRM、電子郵件聚合器、日歷、用戶數(shù)據(jù)庫(kù)、博客、論壇、調(diào)查、Wiki 和即時(shí)通訊程序的功能。

將在線編輯器與 CRM 和項(xiàng)目模塊集成,你可以:

  • 文檔關(guān)聯(lián)到 CRM 時(shí)機(jī)和容器、項(xiàng)目任務(wù)和討論,甚至創(chuàng)建一個(gè)單獨(dú)的文件夾,其中包含與項(xiàng)目相關(guān)的文檔、電子表格和演示文稿。
  • 直接在 CRM 或項(xiàng)目模塊中創(chuàng)建新的文檔、工作表和演示文稿。
  • 打開(kāi)和編輯關(guān)聯(lián)的文檔,或者下載和刪除。
  • 將聯(lián)系人從 CSV 文件批量導(dǎo)入到 CRM 中,并將客戶數(shù)據(jù)庫(kù)導(dǎo)出為 CSV 文件。

在“郵件”模塊中,你可以關(guān)聯(lián)存儲(chǔ)在“文檔模塊”中的文件,或者將指向所需文檔的鏈接插入到郵件正文中。 當(dāng) ONLYOFFICE 用戶收到帶有附件的文檔的消息時(shí),他們可以:下載附件、在瀏覽器中查看文件、打開(kāi)文件進(jìn)行編輯或?qū)⑵浔4娴健拔臋n模塊”。 如上所述,如果格式不同于 OOXML ,則文件將自動(dòng)轉(zhuǎn)換為 .docx、.xlsx、.pptx,并且其副本也將以原始格式保存。

在本文中,你將看到 ONLYOFFICE 與最流行的編程語(yǔ)言之一的 Python 編寫(xiě)的文檔管理系統(tǒng)的集成過(guò)程。 以下步驟將向你展示如何創(chuàng)建所有必要的部分,以使在 DMS(文檔管理系統(tǒng)Document Management System)界面內(nèi)的文檔中可以進(jìn)行協(xié)同工作成為可能:查看、編輯、協(xié)同編輯、保存文件和用戶訪問(wèn)管理,并可以作為服務(wù)的示例集成到 Python 應(yīng)用程序中。

1、前置需求

首先,創(chuàng)建集成過(guò)程的關(guān)鍵組件:ONLYOFFICE 文檔服務(wù)器 和用 Python 編寫(xiě)的文件管理系統(tǒng)。

1.1、ONLYOFFICE 文檔服務(wù)器

要安裝 ONLYOFFICE 文檔服務(wù)器,你可以從多個(gè)安裝選項(xiàng)中進(jìn)行選擇:編譯 GitHub 上可用的源代碼,使用 .deb 或 .rpm 軟件包亦或 Docker 鏡像。

我們推薦使用下面這條命令利用 Docker 映像安裝文檔服務(wù)器和所有必需的依賴。請(qǐng)注意,選擇此方法,你需要安裝最新的 Docker 版本。

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

1.2、利用 Python 開(kāi)發(fā) DMS

如果已經(jīng)擁有一個(gè),請(qǐng)檢查它是否滿足以下條件:

  • 包含需要打開(kāi)以查看/編輯的保留文件
  • 允許下載文件

對(duì)于該應(yīng)用程序,我們將使用 Bottle 框架。我們將使用以下命令將其安裝在工作目錄中:

 
 
 
  1. pip install bottle

然后我們創(chuàng)建應(yīng)用程序代碼 main.py 和模板 index.tpl

我們將以下代碼添加到 main.py 文件中:

 
 
 
  1. from bottle import route, run, template, get, static_file # connecting the framework and the necessary components
  2. @route('/') # setting up routing for requests for /
  3. def index():
  4. return template('index.tpl') # showing template in response to request
  5.  
  6. run(host="localhost", port=8080) # running the application on port 8080

一旦我們運(yùn)行該應(yīng)用程序,點(diǎn)擊 http://localhost:8080 就會(huì)在瀏覽器上呈現(xiàn)一個(gè)空白頁(yè)面 。 為了使文檔服務(wù)器能夠創(chuàng)建新文檔,添加默認(rèn)文件并在模板中生成其名稱列表,我們應(yīng)該創(chuàng)建一個(gè)文件夾 files 并將3種類型文件(.docx、.xlsx 和 .pptx)放入其中。

要讀取這些文件的名稱,我們使用 listdir 組件(模塊):

 
 
 
  1. from os import listdir

現(xiàn)在讓我們?yōu)槲募A中的所有文件名創(chuàng)建一個(gè)變量:

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

要在模板中使用此變量,我們需要通過(guò) template 方法傳遞它:

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

這是模板中的這個(gè)變量:

 
 
 
  1. % for file in sample_files:
  2. {{file}}
  • % end
  • 我們重新啟動(dòng)應(yīng)用程序以查看頁(yè)面上的文件名列表。

    使這些文件可用于所有應(yīng)用程序用戶的方法如下:

     
     
     
    1. @get("/files/")
    2. def show_sample_files(filepath):
    3. return static_file(filepath, root="files")

    2、查看文檔

    所有組件準(zhǔn)備就緒后,讓我們添加函數(shù)以使編輯者可以利用應(yīng)用接口操作。

    第一個(gè)選項(xiàng)使用戶可以打開(kāi)和查看文檔。連接模板中的文檔編輯器 API :

     
     
     

    editor_url 是文檔編輯器的鏈接接口。

    打開(kāi)每個(gè)文件以供查看的按鈕:

     
     
     

    現(xiàn)在我們需要添加帶有 id 的 div 標(biāo)簽,打開(kāi)文檔編輯器:

     
     
     

    要打開(kāi)編輯器,必須調(diào)用調(diào)用一個(gè)函數(shù):

     
     
     

    DocEditor 函數(shù)有兩個(gè)參數(shù):將在其中打開(kāi)編輯器的元素 id 和帶有編輯器設(shè)置的 JSON。 在此示例中,使用了以下必需參數(shù):

    • documentType 由其格式標(biāo)識(shí)(.docx、.xlsx、.pptx 用于相應(yīng)的文本、電子表格和演示文稿)。
    • document.url 是你要打開(kāi)的文件鏈接。
    • editorConfig.mode。

    我們還可以添加將在編輯器中顯示的 title。

    接下來(lái),我們可以在 Python 應(yīng)用程序中查看文檔。

    3、編輯文檔

    首先,添加 “Edit”(編輯)按鈕:

     
     
     

    然后創(chuàng)建一個(gè)新功能,打開(kāi)文件進(jìn)行編輯。類似于查看功能。

    現(xiàn)在創(chuàng)建 3 個(gè)函數(shù):

     
     
     

    destroyEditor 被調(diào)用以關(guān)閉一個(gè)打開(kāi)的編輯器。

    你可能會(huì)注意到,edit() 函數(shù)中缺少 editorConfig 參數(shù),因?yàn)槟J(rèn)情況下它的值是:{"mode":"edit"}

    現(xiàn)在,我們擁有了打開(kāi)文檔以在 Python 應(yīng)用程序中進(jìn)行協(xié)同編輯的所有功能。

    4、如何在 Python 應(yīng)用中利用 ONLYOFFICE 協(xié)同編輯文檔

    通過(guò)在編輯器中設(shè)置對(duì)同一文檔使用相同的 document.key 來(lái)實(shí)現(xiàn)協(xié)同編輯。 如果沒(méi)有此鍵值,則每次打開(kāi)文件時(shí),編輯器都會(huì)創(chuàng)建編輯會(huì)話。

    為每個(gè)文檔設(shè)置唯一鍵,以使用戶連接到同一編輯會(huì)話時(shí)進(jìn)行協(xié)同編輯。 密鑰格式應(yīng)為以下格式:filename +"_key"。下一步是將其添加到當(dāng)前文檔的所有配置中。

     
     
     
    1. document: {
    2. url: "host_url" + '/' + filepath,
    3. title: filename,
    4. key: filename + '_key'
    5. },

    5、如何在 Python 應(yīng)用中利用 ONLYOFFICE 保存文檔

    每次我們更改并保存文件時(shí),ONLYOFFICE 都會(huì)存儲(chǔ)其所有版本。 讓我們仔細(xì)看看它是如何工作的。 關(guān)閉編輯器后,文檔服務(wù)器將構(gòu)建要保存的文件版本并將請(qǐng)求發(fā)送到 callbackUrl 地址。 該請(qǐng)求包含 document.key和指向剛剛構(gòu)建的文件的鏈接。

    document.key 用于查找文件的舊版本并將其替換為新版本。 由于這里沒(méi)有任何數(shù)據(jù)庫(kù),因此僅使用 callbackUrl 發(fā)送文件名。

    在 editorConfig.callbackUrl 的設(shè)置中指定 callbackUrl 參數(shù)并將其添加到 edit() 方法中:

     
     
     
    1. function edit(filename) {
    2. const filepath = 'files/' + filename;
    3. if (editor) {
    4. editor.destroyEditor()
    5. }
    6. editor = new DocsAPI.DocEditor("editor",
    7. {
    8. documentType: get_file_type(filepath),
    9. document: {
    10. url: "host_url" + '/' + filepath,
    11. title: filename,
    12. key: filename + '_key'
    13. }
    14. ,
    15. editorConfig: {
    16. mode: 'edit',
    17. callbackUrl: "host_url" + '/callback' + '&filename=' + filename // add file name as a request parameter
    18. }
    19. });
    20. }

    編寫(xiě)一種方法,在獲取到 POST 請(qǐng)求發(fā)送到 /callback 地址后將保存文件:

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

    # status 2 是已生成的文件,當(dāng)我們關(guān)閉編輯器時(shí),新版本的文件將保存到存儲(chǔ)器中。

    6、管理用戶

    如果應(yīng)用中有用戶,并且你需要查看誰(shuí)在編輯文檔,請(qǐng)?jiān)诰庉嬈鞯呐渲弥休斎肫錁?biāo)識(shí)符(idname)。

    在界面中添加選擇用戶的功能:

     
     
     

    如果在標(biāo)記