OA公文流轉系統主要用於處理企業平常工做中內外部的各類公文,包括了公文的擬稿、審批、傳閱、公告、歸檔,多層上級能夠對下級撰寫的公文進行逐級審批或修改,待最高級人員確認無誤後便可進行核稿和發文等操做,最後在相關人員中傳閱。根據文檔在OA系統及其它辦公系統的中的流轉方式,PageOffice開發平臺研發出了文檔流轉的各個環節對應的文件打開模式及相關實用功能,以便於更好地實現OA系統的需求。下面咱們詳細論述PageOffice在OA系統中的主要使用方式。web
注:PageOffice在文檔流轉過程當中的使用效果請參考Samples示例的高級功能
3、三、在OA或文檔系統裏文件流轉中的使用效果數據庫
1.起草文檔:瀏覽器
通常文檔流轉的第一個環節就是起草文檔,在此環節文員須要自由編輯文檔而不用留下任何痕跡,因此PageOffice爲了這個環節開發出來了文檔的普通編輯模式(docNormalEdit)。在這個模式下文員能夠自由編輯文檔內容,並不會留下任何痕跡。安全
主要代碼:服務器
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request); …… poCtrl1.webOpen("doc/"+filePath, OpenModeType.docNormalEdit, userName);
2.領導批閱併發
通常文檔流轉的過程當中各個階層的領導都會對文員在第一步中起草的文檔進行修改,添加批註等操做,這時對文檔所作的任何修訂都必須以痕跡的形式保留下來,以便於更高層的領導進行審覈,因此PageOffice開發出來了文檔的強制留痕模式(docRevisionOnly)。在這種模式下,用戶對文檔作的任何修訂都會被記錄下來;不一樣用戶對文檔作的修訂會自動用不一樣的顏色標記; 用戶不能接受、拒絕其餘用戶對此文檔所作的任何修訂;修訂記錄可以顯示修訂者的名字,修訂時間及修訂內容。ide
主要代碼:工具
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request); …… poCtrl1.webOpen("doc/"+filePath, OpenModeType.docRevisionOnly, userName);
用戶在這一環節主要用到的功能有:顯示隱藏痕跡,領導圈閱,手寫批註,分層顯示手寫批註,插入鍵盤批註等。開發人員能夠經過添加自定義按鈕觸發js的方式來實現這些功能。
添加自定義工具欄按鈕的方法以下:spa
//「顯示/隱藏痕跡」爲自定義按鈕的名稱,Show_HidRevisions爲js的function方法名,5是按鈕圖標的索引 poCtrl1.addCustomToolButton("顯示/隱藏痕跡", "Show_HideRevisions", 5);
pageoffice提供20個圖標,開發人員能夠從中任意選擇合適的圖標匹配該功能。詳細請參考PageOffice的Samples示例:1、1九、在PageOffice自定義工具條上添加一個按鈕(以Word爲例)code
以上相關功能的js代碼:
(1)顯示隱藏痕跡:(痕跡通常指的是鍵盤批註和留痕模式用戶刪除或插入的文檔內容,這些統稱爲痕跡,不包含手寫批註)
document.getElementById("PageOfficeCtrl1").ShowRevisions = false|true;
(2)領導圈閱,手寫批註:
document.getElementById("PageOfficeCtrl1").HandDraw.Start();
(3)分層顯示手寫批註:
document.getElementById("PageOfficeCtrl1").HandDraw.ShowLayerBar();
ShowLayerBar(): 顯示「分層手寫批註」工具欄,在工具欄上顯示全部作過手寫批註的批註者的用戶名。點擊指定的用戶名,只顯示該用戶的手寫批註,而隱藏其餘用戶的手寫批註。也能夠顯示所有批註,或隱藏所有批註。
注:上述描述中的該用戶指的是webOpen的第三個參數值.具體說明以下,
poCtrl1.webOpen("doc/"+filePath, OpenModeType.docRevisionOnly, userName);
webOpen中的第三個參數userName用來控制分層顯示手寫批註的用戶名和痕跡提示框的用戶名。pageoffice的併發控制機制也是用該參數區別是否不一樣用戶打開文檔的。通常來講,webOpen的第三個參數都會設置成當前登陸系統的用戶名。
(4)插入鍵盤批註:
document.getElementById("PageOfficeCtrl1").WordInsertComment();
(不一樣的用戶的不一樣痕跡用不一樣的顏色來表示,顏色是系統默認分配的)
3.文員清稿
在這一環節,文員將對文檔進行清稿工做,包括拒絕或者接受修訂,清除文檔的全部痕跡及手寫內容(對文檔進行電子簽章的環節通常也是使用此模式打開文件的),因此這一環節將用到PageOffice的核稿模式(docAdmin),在這種模式下, 用戶可以清理文檔流轉過程當中留下的各類修訂、修改、批註及手寫批註;用戶能夠顯示或隱藏修訂痕跡;用戶能夠自由編輯文檔而不會留下任何痕跡記錄;用戶還能夠移動、刪除任何人的手寫批註。
主要代碼:
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request); …… poCtrl1.webOpen("doc/"+filePath, OpenModeType.docAdmin, 「張三」);
用戶在這一環節主要用到的功能有:接受或者拒絕修訂,隱藏全部痕跡,插入手寫簽名章或者圖片章.
以上相關功能的js代碼:
(1)接受全部修訂:
document.getElementById("PageOfficeCtrl1").AcceptAllRevisions();
(2)拒絕全部修訂:
document.getElementById("PageOfficeCtrl1").Document.RejectAllRevisions();
(3)插入印章:
document.getElementById("PageOfficeCtrl1").ZoomSeal.AddSeal();
注:PageOffice的電子簽章功能的詳細使用能夠參考Samples的基本功能
1、1五、演示加蓋印章和簽字功能(以Word爲例),此處再也不贅述.
(4)插入手寫簽名章:
document.getElementById("PageOfficeCtrl1").ZoomSeal. AddHandSign();
(文員清稿模式)
4.正式發文
通常文檔流轉的最後一個環節就是正式發文環節,在這一個環節,不須要用戶再對文檔作任何修改,因此就用到了PageOffice的只讀模式(docRealOnly)打開文檔, 在該模式下用戶只能閱讀文檔內容,不能對文檔作任何修改。若是配合 PageOffice的禁止複製、禁止另存、禁止打印等功能,還能夠實現安全的文檔在線瀏覽功能。
主要代碼:
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request); …… poCtrl1.webOpen("doc/"+filePath, OpenModeType.docReadOnly, "張三");
正式發文(只讀模式打開文檔)
這一環節用戶可能用到的主要功能有:打印,頁面設置,禁止複製下載等.
以上相關功能的js代碼以下:
(1)打印:
document.getElementById("PageOfficeCtrl1").ShowDialog(4);
(2)頁面設置:
document.getElementById("PageOfficeCtrl1").ShowDialog(5);
(3)另存到本地:
document.getElementById("PageOfficeCtrl1").ShowDialog(2);
(4)禁止複製,粘貼:
//服務器端代碼。須放webOpen方法以前設置才能夠禁止複製、粘貼的功能。 poctrl. setAllowCopy(false);
5.正式發文時還能夠轉換爲htm, mht,pdf等格式的文檔
有的用戶須要實現沒有安裝Office客戶端的電腦也能夠查看正式發文,這就須要把Word文檔另存爲HTML或PDF了。若是另存爲HTML,那麼客戶端直接就能夠用瀏覽器查看,缺點是另存出來的HTML跟Word原文的格式會有必定的差距;若是另存爲PDF,那麼因爲PageOffice客戶端內置PDF閱讀器,能夠支持PDF文檔的在線打開,因此另存爲PDF是隻讀發文的一種比較完美的實現方式,可是隻有專業版和企業版才支持此功能,標準版不支持。
(1)將當前文檔另存爲HTML,MHT類型的文件,並上傳到Web服務器端的js代碼:
document.getElementById("PageOfficeCtrl1").WebSaveAsHTML(); document.getElementById("PageOfficeCtrl1").WebSaveAsMHT();
(2)將當前文檔另存爲PDF的js代碼:
document.getElementById("PageOfficeCtrl1").WebSaveAsPDF();
通常在文檔強制留痕後,有個別用戶的需求是獲取文檔中的全部痕跡並保存到數據庫,以便於後期的查找覈對。還有一些需求是獲取文檔中的全部痕跡後以痕跡列表的形式在頁面顯示出來,具體爲何要這樣作呢?由於當文檔有幾十頁甚至更大時,用戶不容易知道文檔具體哪些頁有痕跡,不容易找到文檔中全部的痕跡進行處理,當有痕跡列表顯示時,用戶很容易根據列表信息定位到文檔中每個痕跡的位置並對該痕跡進行處理,這樣大大節省了用戶的工做時間,提升了用戶的工做效率。下面是一個獲取Word文檔中全部痕跡的代碼,開發人員能夠利用這個js示例中所調用的痕跡接口實現上述用戶需求。
//獲取並顯示全部痕跡 function jsGetAllRevisions() { var docObj = document.getElementById("PageOfficeCtrl1").Document; var i; var str=""; for (i = 1;i <=docObj.Revisions.Count;i++){ str=str + docObj.Revisions.Item(i).Author; if (docObj.Revisions.Item(i).Type=="1"){ str=str+ ' 插入:'+docObj.Revisions.Item(i).Range.Text+"\r\n"; } else if (docObj.Revisions.Item(i).Type=="2"){ str=str + ' 刪除:'+docObj.Revisions.Item(i).Range.Text+"\r\n"; } else { str=str + ' 調整格式或樣式。'; } } alert("當前文檔的全部修改痕跡以下:\r\n"+str); } //獲取痕跡中時間的js: //Document.Revisions.Item(i).Range.Date; //Document.Revisions.Item(i).Range.DateTime; //Document.Revisions.Item(i).Range.Time;
綜上所述,PageOffice針對文檔在OA辦公系統或其餘文檔辦公系統中不一樣流程環節的特色,開發了對應的模式,還提供了顯示隱藏痕跡、手寫批註、分層顯示手寫、打印控制、另存控制、保存控制等各類功能,使得開發人員只需關注自身系統的業務邏輯開發,很簡單方便的利用PageOffice實現不一樣流程環節下的控制和功能,代碼清晰明瞭,極大的節省了系統的開發時間,提升開發工做效率。