ONLYOFFICE Document Server提供文檔協作的服務功能,支持Word,Excel和PowerPoint的協作。但是這里,需要進行文檔管理和存儲的二次開發。
一、安裝ONLYOFFICE Document Server
平台集成onlyoffice,調用onlyoffice的api,需要現在本地的一台服務器上安裝onlyoffice的文檔服務器,安裝文檔服務器的方式有很多種,Windows和Linux上都可以安裝,但是因為文檔服務器的正常使用需要其他插件的配合,所以正常按照官網上來一步步安裝,還需要安裝redis,rabbitMQ,mysql、Erlang、PostgreSQL等等一系列的插件,十分麻煩,而且如果你是使用windows版本安裝的話,因為onlyoffice不支持中文,所以有關於中文的文檔基本都是亂碼,需要你另行安裝字體文件,但是onlyoffice內部對於字體的添加,我查閱網上的一些資料,好像是掃描windows系統中的字體,來進行轉換的,系統字體很難去刪除添加,所以這種方式我不建議使用,我推薦的是在windows上使用虛擬服務器來安裝docker,導入一個整體的鏡像文件,(包含了中文字體)來運行onlyoffice,這里需要說明一下,至少需要2G的內存空間來讓他正常運行,其流程如下:
第一步:確定電腦打開了cpu虛擬打開。https://jingyan.baidu.com/article/22fe7ced3b4c003002617f17.html
第二步:下載和安裝docker,默認安裝即可。windows安裝docker toolbox,下載地址http://get.daocloud.io/,下載支持舊版windows的docker toolbox,win10就直接下載docker了;linux安裝docker 安裝,安裝步驟可參考使用docker進行項目一鍵部署 。
第三步:啟動docker后在里面拉取Onlyoffice Document Server 的Docker鏡像
拉取鏡像:啟動docker,在里面輸入命令
第四步:啟動鏡像文件:docker run -i -t -d -p 9000:80 onlyoffice/documentserver
如果是導入的鏡像,上面的命令中onlyoffice/documentserver用鏡像id代替, 查閱鏡像用docker images命令。
鏡像文件拉取:\\192.168.0.6\java組共享\onlyoffice\onlyoffice5.1.4.tar
二、集成onlyoffice的二次開發
文檔的管理和引用:
創建一個空的html文件。
使用將用於您的網站的JavaScript API指定您的ONLYOFFICE文件服務器鏈接。
< script type = “text / javascript” src = “https://documentserver/web-apps/apps/api/documents/api.js” ></ script >
凡documentserver是一台安裝ONLYOFFICE文件服務器的服務器的名稱。
添加腳本初始化文件編輯器的DIV與您要打開的文檔的配置元素。
new DocsAPI.DocEditor("placeholder", {
"document": {
"fileType": "docx",
"key": "Khirz6zTPdfd7",
"title": "Example Document Title.docx",
"url": "https://example.com/url-to-example-document.docx"
},
"documentType": "text"
});
以上配置即可以打開文檔服務器,但是編輯完完頁面雖然顯示自動保存,但是它是保存在它自己配置的一個緩存數據庫中,你下次打開它會從此數據庫中獲取,但是下載出來的仍然是編輯之前的。
“documentType”:“text”,
“editorConfig”:{
“callbackUrl”:“https://example.com/url-to-callback.ashx”
}
這里可以設置保存路徑,callbackurl即為回調處理,把編輯后文件保存在本地的指定路徑上
平台系統中可以參照view_files.jsp這個頁面:
-
<body style="height:100%; margin:0;"> <div id = "placeholder"> </div > <script type="text/javascript" > window.docEditor = new DocsAPI.DocEditor("placeholder", { "document": { "fileType": "${FileType}", "key": "${key}",//Khirz6zTPdfd9 "title": "測試查看文檔", "url": "${fileUrl}" }, "documentType": "${documentType}", "editorConfig":{ "autosave": false, "mode": "edit", "lang":"zh-cmn-Hans", "callbackUrl":"${Path}admin/fileView/callBack.do?FileId=${FileId}&FileName=${FileName}", "高度": "100%", "寬度": "100%" } }); </script> </body>
-
Document是打開文檔編輯的必要組件,filetype是文件類型,平台上目前只支持word、excel、ppt三種文件格式;
key是唯一標識符,文檔編輯完成以后路徑會保存在Postgresql數據庫中,以鍵值對的形式存在,key值即是取出保存路徑的唯一標識符;
documentType是文檔類型,這一點不要與文件類型搞混;
editorConfig內是拓展組件,autosave是自動保存,默認值為true,這里設置為false改為手動保存。
三、故障排除:
下載失敗
“下載失敗”消息顯示在編輯器加載過程中。
該文檔編輯服務不能上傳文件進行編輯。
檢查指向document.url中指定文件的鏈接是否正確。鏈接必須可以從文檔編輯服務訪問。
沒有變化
在編輯后關閉編輯器時,文件管理器中的文件保持不變。
該文檔編輯服務無法將數據發送到文檔存儲服務。
檢查editorConfig.callbackUrl鏈接是否正確。文檔管理器中的保存必須通過回調處理程序來實現
無法保存
編輯器加載了“文檔無法保存”消息。
該文檔編輯服務無法連接到文件存儲服務在editorConfig.callbackUrl地址。
檢查回調處理程序是否正常工作。作為回應,文檔存儲服務必須返回{“error”:0}。
文件版本已更改
編輯器加載了“文件版本已更改,頁面將重新加載”消息。
該文檔編輯服務無法打開以前編輯和保存的文件進行編輯。
不要忘記,每次文檔被編輯和保存時,必須重新生成document.key。
這路的key需要強調一下,key必須是唯一值,因為她是作為唯一標識來從數據庫中獲 取編輯過的文件
四、缺陷
chrome和opera瀏覽器中輸入中文,鍵入符號的時候,前面的中文會重復輸入進去。
瀏覽器訪問不能以localhost,127.0.0.1來直接訪問,需要輸入你完整的地址(例如:192.168.0.xx:8090/.....),不然無法打開在線編輯功能
目前只有最新版本的Chrome,Firefox,Safari或Internet Explorer網絡瀏覽器支持文檔編輯器(IE9以前的都不支持onlyoffice的文檔編輯器)
歷史版本功能目前是只支持word的歷史版本,PowerPoint和Excel不支持歷史版本,並且歷史版本只能看,不能再次編輯
五、總結
Onlyoffice的功能十分強大,我們只是使用它的文檔服務器,而且文檔服務器中還有很多其他的功能,例如多人同時在線編輯,互聊等等,因為平台暫時沒有用到,所以暫時沒有做很深入的研究。想了解具體詳細的資料可以通過鏈接: