ONLYOFFICE文檔服務器使用介紹
1.ONLYOFFICE構建頁面:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>測試</title>
<script type="text/javascript" src="http://文檔服務器IP:端口/web-apps/apps/api/documents/api.js"></script>
<style>
html {
height: 100%;
width: 100%;
padding: 0;
margin: 0;
}
body {
height: 100%;
width: 100%;
padding: 0;
margin: 0;
}
</style>
</head>
<body>
<div id="placeholder" class="nav" style="width: 100%; height: 100%"></div>
<script language="javascript" type="text/javascript">
var docEditor = new DocsAPI.DocEditor("placeholder", config);
</script>
</body>
</html>
2.ONLYOFFICE構建參數介紹
可以為ONLYOFFICE Document Server更改的參數可以細分為以下主要部分:
*config-*允許更改使用的平台類型,文檔顯示大小(寬度和高度)以及打開的文檔類型;
· *document-*包含與文檔有關的所有參數(標題,URL,文件類型等);
o *info-*包含文檔的其他參數(文檔所有者,文檔存儲文件夾,上傳日期,共享設置);
o *permissions*-定義是否可以編輯和下載文檔;
· *editorConfig-*定義與編輯器界面有關的參數:打開模式(查看器或編輯器),界面語言,其他按鈕等);
o *customization* -允許自定義編輯器界面,使其看起來像您的其他產品(如果有),並更改是否存在其他按鈕,鏈接,更改徽標和編輯者所有者詳細信息;
o *embedded* -僅用於嵌入式文檔類型,並允許更改用於控制嵌入式模式的按鈕的行為;
· *plugins* - 用於將必要的插件連接到您的Document Server,以便對所有文檔編輯器用戶可見;
· *events* -是在將某些操作應用於文檔時(加載,修改等時)調用的特殊事件的列表;
let config = {
"document": {
"documentType": "text",
"width": "100%", //打開窗口寬度
"height": "100%", //打開窗口高度
"fileType": "doc",//文檔類型
"key": "618", //定義用於服務識別文檔的唯一文檔標識符。每次編輯和保存文檔時,都必須重新生成密鑰。長度限制為128個符號。
"title": "1.doc", //為查看或編輯的文檔定義所需的文件名,該文件名也將在下載文檔時用作文件名。長度限制為128個符號。
"url": "http://www.baidu.com/downLoad/618", //定義存儲原始查看或編輯的文檔的絕對URL
"info": {
"owner": "王重陽",//文件創建者名稱
"sharingSettings": [//文件對應用戶的操作權限配置
{
"permissions": "Full Access", // 完全操作權限-Full Access,只讀權限-Read Only 拒絕訪問-Deny Access
"user": "林朝英" //有次權限的用戶
},
{
"permissions": "Read Only",
"user": "周伯通"
},
],
"uploaded": "2010-07-07 3:46 PM" //文件創建時間
},
//文檔權限參數
"permissions": {
"edit": true, //(文件是否可以編輯,false時文件不可編輯)
"fillForms": true,//定義是否能在文檔中填充表單
"print": false, //定義文檔是否能打印
"review": false,//第一是否顯示審閱文檔菜單
"comment": true, //定義是否可以注釋文檔。如果注釋權限設置為“ true”,則文檔側欄將包含“注釋”菜單選項;只有將mode參數設置為edit時才生效,默認值與edit參數的值一致。
"copy": true, //是否允許您將內容復制到剪貼板。默認值為true。
"download": true, //定義是否可以下載文檔或僅在線查看或編輯文檔。如果下載權限設置為“false”下載為菜單選項將沒有。默認值為true。
"modifyContentControl": true, //定義是否可以更改內容控件設置。僅當mode參數設置為edit時,內容控件修改才可用於文檔編輯器。默認值為true。
"modifyFilter": true, //定義過濾器是否可以全局應用(true)影響所有其他用戶,或局部應用(false),即僅適用於當前用戶。如果將mode參數設置為edit,則過濾器修改僅對電子表格編輯器可用。默認值為true。
}
},
// type: "embedded",
//打開文檔類型
// text對應各種文檔類型(.doc, .docm, .docx, .dot, .dotm, .dotx, .epub, .fodt, .htm, .html, .mht, .odt, .ott, .pdf, .rtf, .txt, .djvu, .xps)
//spreadsheet對應表格類型(.csv, .fods, .ods, .ots, .xls, .xlsm, .xlsx, .xlt, .xltm, .xltx)
//presentation對應PPT類型(.fodp, .odp, .otp, .pot, .potm, .potx, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx)
"editorConfig": {//編輯配置
"createUrl": "http://docServer:port/url-to-create-document/", //指定創建文件的頁面,添加該配置后文檔服務器插件才會顯示新建文件按鈕
"mode": "view", //文檔操作模式 view 視圖模式不可編輯 edit 編輯模式可編輯文檔
"callbackUrl": "http://www.baidu.com/out/docx/save",//保存文件時的回調地址
"lang": "zh-CN", //語言環境
"customization": {//定制部分允許自定義編輯器界面,使其看起來像您的其他產品,並更改是否存在其他按鈕,鏈接,更改徽標和編輯者所有者詳細信息。
"help": true, //定義是顯示還是隱藏“幫助”菜單按鈕。默認值為true。
"hideRightMenu": false, //定義在第一次加載時是顯示還是隱藏右側菜單。默認值為false。
"autosave": true,//定義是啟用還是禁用“自動保存”菜單選項。請注意,如果您在菜單中更改此選項,它將被保存到瀏覽器的localStorage中。默認值為true。
"forcesave": true, //定義保存按鈕是否顯示默認false
"chat": true, //定義“聊天”菜單按鈕是顯示還是隱藏;請注意,如果您隱藏“聊天”按鈕,則相應的聊天功能也將被禁用。默認值為true。
"commentAuthorOnly": false, //定義用戶是否只能編輯和刪除他的評論。默認值為false。
"comments": true, //定義是顯示還是隱藏“注釋”菜單按鈕;請注意,如果您隱藏“評論”按鈕,則相應的評論功能將僅可用於查看,評論的添加和編輯將不可用。默認值為true。
"compactHeader": false, //定義是否將菜單欄放在在徽標旁邊使界面更加緊湊默認false。
"compactToolbar": false, //定義顯示的頂部工具欄類型是完整(false)還是緊湊true。默認值為false 多余菜單將在右側折疊點擊顯示。
"compatibleFeatures": false, //定義僅與OOXML格式兼容的功能的使用。例如,不要在整個文檔上使用注釋。默認值為false。
"macros": true, //定義是否將運行文檔宏以及可用的宏設置。默認值為true。
"macrosMode": "warn", //定義是否將運行文檔宏。可以采用以下值: disable -根本不運行;enable -自動運行所有宏;warn -警告宏並請求允許運行。默認值為original。
"plugins": true, //定義是否將啟動插件並可用。默認值為true。
"showReviewChanges": false, //定義在加載編輯器時是否自動顯示或隱藏審閱更改面板。默認值為false。
"spellcheck": true, //定義在加載編輯器時是否自動打開或關閉拼寫檢查器。拼寫檢查器僅適用於文檔編輯器和演示文稿編輯器。默認值為true。
"toolbarNoTabs": false, //定義是突出顯示頂部工具欄選項卡樣式。默認值為false。
"unit": "cm", //定義在標尺和對話框中使用的度量單位。可以采用以下值:cm -厘米,pt-點,inch -英寸。默認值為厘米(cm)。
"zoom": 100, //定義以百分比為單位的文檔顯示縮放值。可以取大於0的值。對於文本文檔和演示文稿,可以將此參數設置為-1(使文檔適合頁面選項)或-2(使文檔頁面寬度適合編輯器頁面)。默認值為100。
"customer": { //關於 文檔編輯器的顯示信息
"address": "My City, 123a-45", //有權訪問編輯或編輯作者的公司或個人的郵政地址,
"info": "Some additional information", //有關您希望其他人認識的公司或個人的一些其他信息,
"logo": "https://example.com/logo-big.png", //圖片徽標的路徑(此文件沒有特別建議,但是如果使用透明背景的.png格式會更好)。圖片必須具有以下尺寸:432x70,
"mail": "john@example.com", //有權訪問編輯者或編輯者的公司或個人的電子郵件地址
"name": "歐陽鋒", //該公司或個人的誰可以訪問編輯或編輯作者,名稱
"www": "example.com" //以上公司或個人的家庭網站地址,
},
"feedback": { //反饋配置信息
"url": "https://example.com", //單擊“反饋和支持”菜單按鈕時將打開的網站地址的絕對URL ,
"visible": true //顯示或隱藏“反饋和支持”菜單按鈕,
},
"goback": { //定義“打開文件位置”菜單按鈕和右上角按鈕的設置。該對象具有以下參數:
"blank": true, //在新的瀏覽器選項卡/窗口(如果值設置為true)或當前選項卡(如果值設置為false)中打開網站。默認值為true,
"requestClose": false, //定義如果單擊“打開文件位置”按鈕,則調用events.onRequestClose事件,而不是打開瀏覽器選項卡或窗口。默認值為false,
"text": "Open file location", //將在“打開文件位置”菜單按鈕和右上角按鈕(即,而不是“轉到文檔”)上顯示的文本,
"url": "https://example.com" //單擊“打開文件位置”菜單按鈕時將打開的網站地址的絕對URL ,
},
"logo": {
"image": "https://example.com/logo.png", //圖像文件的路徑,用於在普通工作模式下顯示(即,在所有編輯器的查看和編輯模式下)。圖片必須具有以下尺寸:172x40,
"imageEmbedded": "https://example.com/logo_em.png", //用於以嵌入式模式顯示的圖像文件的路徑(請參閱config部分以了解如何定義嵌入式文檔類型)。圖片必須具有以下尺寸:248x40,
"url": "https://www.baidu.com" //某人單擊徽標圖像時將使用的絕對URL(可用於轉到您的網站等)。保留為空字符串或null以使徽標不可單擊,
},
},
"user": { //用戶信息
"id": "78e1e841",//用戶ID
"name": "洪七公" //用戶全名稱
},
"embedded": { //Embedded部分僅適用於嵌入式文檔類型(請參閱config部分以了解如何定義嵌入式文檔類型)。它允許更改設置,這些設置定義嵌入式模式下按鈕的行為。
"embedUrl": "https://example.com/embedded?doc=exampledocument1.docx", //定義文檔的絕對URL,以作為嵌入到網頁中的文檔的源文件
"fullscreenUrl": "https://example.com/embedded?doc=exampledocument1.docx#fullscreen", //定義將以全屏模式打開的文檔的絕對URL。
"saveUrl": "https://example.com/download?doc=exampledocument1.docx", //定義允許將文檔保存到用戶個人計算機上的絕對URL。
"shareUrl": "https://example.com/view?doc=exampledocument1.docx", //定義允許其他用戶共享此文檔的絕對URL。
"toolbarDocked": "top" //定義嵌入式查看器工具欄的位置,可以為top或bottom。
}
},
"events": { //事件配置
// onAppReady,//-將應用程序加載到瀏覽器時調用的函數。
// onCollaborativeChanges //-當文檔由其他用戶在嚴格共同編輯模式下共同編輯時調用的函數。
// onDocumentReady,//-將應用程序加載到瀏覽器時調用的函數。
// onDocumentStateChange,//-修改文檔時調用的函數。這就是所謂的使用參數:{真正的“數據”}在當前用戶編輯文檔以及與參數:{“數據”:假}在當前用戶的更改發送到文檔編輯服務。
// onDownloadAs,//-調用downloadAs方法時,使用指向已編輯文件的絕對URL調用的函數。在data參數中發送要下載的文檔的絕對URL 。
// onError,//-發生錯誤或其他特定事件時調用的函數。錯誤消息在data參數中發送。
// onInfo,//-應用程序打開文件時調用的函數。該模式在data.mode參數中發送。可以查看或編輯。
// onMetaChange,//-通過meta命令更改文檔的元信息時調用的函數。文檔名稱通過data.title參數發送。
// onOutdatedVersion,//-使用舊的document.key值打開文檔進行編輯時,顯示錯誤后調用的函數,該值用於編輯先前的文檔版本並已成功保存。調用此事件時,必須使用新的document.key重新初始化編輯器。
// onReady,//-將應用程序加載到瀏覽器時調用的函數。自從5.0版本不推薦使用,請使用onAppReady代替
// onRequestClose,//-結束編輯器的工作並且必須關閉編輯器時調用的函數。
// onRequestCompareFile,//-用戶嘗試通過單擊“存儲中的文檔”按鈕來選擇要比較的文檔時調用的函數。要選擇要比較的文檔,必須調用setRevisedFile方法。如果未聲明該方法,則不會顯示“來自存儲的文檔”按鈕。
// onRequestCreateNew,//-用戶嘗試通過單擊“新建”按鈕來創建文檔時調用的函數。使用此方法代替createUrl字段。如果未聲明該方法且未指定createUrl,則將不會顯示“創建新”按鈕。
// onRequestEditRights,//-用戶嘗試通過單擊“編輯文檔”按鈕嘗試將文檔從視圖切換到編輯模式時調用的函數。調用該函數時,必須在編輯模式下再次初始化編輯器。如果未聲明該方法,則不會顯示“編輯”按鈕。
// onRequestHistory,//-用戶嘗試通過單擊“版本歷史記錄”按鈕顯示文檔版本歷史記錄時調用的函數。要顯示文檔版本歷史,您必須調用refreshHistory方法。如果未聲明該方法和onRequestHistoryData方法,則不會顯示“版本歷史記錄”按鈕。
// onRequestHistoryClose,//-當用戶嘗試通過單擊“關閉歷史記錄”按鈕來查看文檔版本歷史記錄時,試圖調用該文檔時調用的函數。調用該函數時,必須在編輯模式下再次初始化編輯器。如果未聲明該方法,則不會顯示“關閉歷史記錄”按鈕。
// onRequestHistoryData,//-用戶嘗試單擊文檔版本歷史記錄中的特定文檔版本時調用的函數。
// onRequestInsertImage,//-用戶嘗試通過單擊“保存圖像”按鈕插入圖像時調用的函數。圖像插入的類型在參數data.c中指定。
// onRequestRename,//-用戶嘗試通過單擊“重命名...”按鈕重命名文件時調用的函數。
// onRequestRestore,//-用戶單擊版本歷史記錄中的“還原”按鈕來還原文件版本時調用的函數。
// onRequestSaveAs,//-用戶嘗試通過單擊“另存為...”按鈕保存文件時調用的函數。文檔的標題和要下載的文檔的絕對URL在data參數中發送。如果未聲明該方法,則不會顯示“另存為...”按鈕。
// onRequestSharingSettings,//-用戶單擊“更改訪問權限”按鈕來管理文檔訪問權限時調用的函數。必須調用setSharingSettings方法來更新有關允許與其他用戶共享文檔的設置的信息。如果未聲明該方法,則不會顯示“更改訪問權限”按鈕。
// onRequestUsers,//-評論者可以選擇要在評論中提及的其他用戶時調用的函數。要設置用戶列表,必須調用setUsers方法。
// onWarning,//-發生警告時調用的函數。警告消息在data參數中發送。
"onDocumentStateChange" : onDocumentStateChange, //文檔改變后的回調
"onDocumentReady" : onDocumentReady, //文檔初始化准備好后的回調
},
};
3.ONLYOFFICE Docs轉換服務介紹
1. 請求換換的服務通過HTTP POST請求使用 URL: http://文檔服務器IP:端口/ConvertService.ashx
2.簡單請求參數說明
//#簡單請求參數示例:
{
"async": false, //是否異步請求
"filetype": "docx", //文檔格式 [必填項]
"key": "Khirz6zTPdfd7", //[必填項]
"outputtype": "pdf", //需要轉換的格式 [必填項]
"url": "https://example.com/url-to-example-document.docx" //或者需要轉換的文檔的URL
}
//#請求參數示例
{
"filetype": "xlsx",
"key": "Khirz6zTPdfd7",
"outputtype": "pdf",
"region": "en-US",
"spreadsheetLayout": {
"ignorePrintArea": true,
"orientation": "portrait",
"fitToWidth": 0,
"fitToHeight": 0,
"scale": 100,
"headings": false,
"gridLines": false,
"pageSize": {
"width": "210mm",
"height": "297mm"
},
"margins": {
"left": "17.8mm",
"right": "17.8mm",
"top": "19.1mm",
"bottom": "19.1mm"
}
},
"title": "Example Document Title.pdf",
"url": "https://example.com/url-to-example-spreadsheet.xlsx"
}
3.請求詳細參數說明
參數 | 描述 | 類型 | 是否必填 |
---|---|---|---|
async | 定義轉換請求類型:是否異步。true 是 false 否 | boolean | 可選 |
codePage | 定義從csv或txt格式轉換時的文件編碼主要支持的值: 932-日文(Shift-JIS) 950-中國傳統(Big5) 1250-中歐(WINDOWN) 1251-西里爾文(Windows) 65001 -Unicode(UTF-8) |
integer | 可選 |
delimiter | 定義用於從csv格式轉換時分隔值的定界符支持的值: 0-無分隔符 1-TAB 標簽 2-分號 3-冒號 4-逗號 5-空格 |
integer | 可選 |
filetype* | 定義要轉換的文檔文件的類型 | string | required |
key | 定義用於明確標識文檔文件的文檔標識符 | string | required |
outputtype* | 定義結果轉換后的文檔類型 | string | required |
password | 定義文檔文件的密碼(如果使用密碼保護) | string | 可選 |
region | 從Spreadsheet格式轉換為pdf時,定義貨幣,日期和時間的默認顯示格式。使用四個字母(en-US,fr-FR等)的語言代碼設置。默認值為en-US | string | 可選 |
spreadsheetLayout | 定義用於將電子表格轉換為pdf的設置 | object | 可選 |
spreadsheetLayout.fitToHeight | 設置轉換區域的高度,以頁數為單位。默認值為0 | integer | 可選 |
spreadsheetLayout.fitToWidth | 設置轉換區域的寬度,以頁數為單位。默認值為0 | integer | 可選 |
spreadsheetLayout.gridLines | 是否允許將網格線包含到輸出PDF文件中。默認值為false | boolean | 可選 |
spreadsheetLayout.headings | 是否允許將標題包含在輸出的PDF文件中。默認值為false | boolean | 可選 |
spreadsheetLayout.ignorePrintArea | 確定是否忽略為電子表格文件選擇的打印區域。默認值為true | boolean | 可選 |
spreadsheetLayout.margins | 設置輸出PDF文件的頁邊距 | object | 可選 |
spreadsheetLayout.margins.bottom | 設置輸出PDF文件的底邊距。默認值為19.1mm | string | 可選 |
spreadsheetLayout.margins.left | 設置輸出PDF文件的左邊距。默認值為17.8mm | string | 可選 |
spreadsheetLayout.margins.right | 設置輸出PDF文件的右邊距。默認值為17.8mm | string | 可選 |
spreadsheetLayout.margins.top | 設置輸出PDF文件的上邊距。默認值為19.1mm | string | 可選 |
spreadsheetLayout.orientation | 設置輸出PDF文件的方向。可能是風景,肖像。默認值為portrait | string | 可選 |
spreadsheetLayout.pageSize | 設置輸出PDF文件的頁面大小 | object | 可選 |
spreadsheetLayout.pageSize.height | 設置輸出PDF文件的頁面高度。默認值為297mm. | string | 可選 |
spreadsheetLayout.pageSize.width | 設置輸出PDF文件的頁面寬度。默認值為210mm | string | 可選 |
spreadsheetLayout.scale | 允許設置輸出PDF文件的比例。默認值為100。 | integer | 可選 |
thumbnail | 指定的圖像格式(當定義用於縮略圖的設置BMP,GIF,JPG,PNG)作為輸出類型. | object | 可選 |
thumbnail.aspect | 定義模式以使圖像適合指定的高度和寬度。支持的值:. | integer | 可選 |
thumbnail.first | 0-拉伸文件以適合高度和寬度, 1-保留圖片的外觀, 2-在這種情況下,不使用寬度和高度設置。取而代之的是,將頁面的度量標准尺寸轉換為96dpi的像素。例如,A4(210x297mm)頁面將變成一張794x1123pix尺寸的圖片。定義是只為首頁還是為所有文檔頁面生成縮略圖。如果為false,則將創建包含所有頁面縮略圖的zip存檔。 默認值為true, |
boolean | 可選 |
thumbnail.height | 默認值為2定義縮略圖高度(以像素為單位)。默認值為100。. | integer | 可選 |
thumbnail.width | 定義縮略圖的寬度(以像素為單位)。默認值為100。 | integer | 可選 |
title | 定義轉換后的文件名。 | string | 可選 |
token | 定義以令牌形式添加到Document Server配置的加密簽名。 | string | 配置后必填 |
url | 定義要轉換的文檔的絕對URL。 | string | 可選 |
4.響應結果說明:
//正常響應結果
{
"endConvert":true,//轉換是否完成
"fileUrl":“ https://documentserver/ResourceService.ashx?filename=output.doc”,//轉換后的文件地址
"percent":100//轉換完成百分比 僅參數設置為異步時
}
//異常響應結果
{
“error”:- 3
}
5.錯誤碼說明:
錯誤代碼 | 描述 |
---|---|
-1 | 未知錯誤。 |
-2 | 轉換超時錯誤。 |
-3 | 轉換錯誤。 |
-4 | 下載要轉換的文檔文件時出錯。 |
-5 | 密碼錯誤。 |
-6 | 訪問轉換結果數據庫時出錯。 |
-7 | 輸入錯誤。 |
-8 | 令牌無效。 |
文檔轉換表格:
- 文檔類型轉換表格:
- 表格類型轉換表格:
- 演示文稿PPT轉換表格: