在线office编辑 iWebOffice系列的交互操作
需求效果實現Office在線編輯支持B/S數據實時交互然后保存成html格式如圖:
?
iWebOffice2003網絡文檔中間件是iWebOffice系列中的低端產品(該系列包含iWebOffice2000、2003、2006、2009、2012等幾款產品)。iWebOffice2003產品支持直接在IE瀏覽器中在線打開服務器上的文檔(Word、Excel、WPS、金山表格)并對文檔進行編輯和保存操作,能夠自由的將服務器數據庫中的數據插入當前文檔的指定位置,實現文檔和電子表格和數據庫的統一管理。同時支持痕跡保留、模板套紅、手寫簽名、電子印章等辦公自動化系統必備的功能。
iWebOffice2003網絡文檔中間件采用標準HTTP、HTTPS協議進行通信可以兼容各種B/S架構下的應用環境,支持任意后臺Web服務器程序(IIS、WebLogic、WebSphere、Apache、Tomcat等),任意服務端操作系統(Windows 2000/2003/2008、Linux、Unix等),以及各種B/S架構編程語言(ASP、JSP、PHP、VB.NET、C#.NET、DOMINO等)和各種Web應用服務器體系結構(J2EE、.NET等)。它能非常簡潔、方便、快速的集成到您的產品中,為您的產品提供專業、穩定、高效的文檔應用功能。
最新版本
iWebOffice2003網絡文檔中間件目前最新版本為:V8.7.2.4全面支持各種OFFICE版本。
?
功能實現:
1、強大的擴展通訊能力,支持B/S數據實時交互
采用了自主知識產權的DBPacketTM對象包協議技術,能夠在IE瀏覽器里非常方便的使用JavaScript或VBScript調用封裝好的WebSetMsgByName(設置變量值)和WebGetMsgByName(取得變量值)函數,通過標準的HTTP協議與Web服務器進行通訊,從而實現強大的通訊功能,適用與任何復雜前后臺數據交換的工作。
2、傳輸過程安全加密,保證文件傳輸安全
系統采用前端和后端方式設計,當客戶端請求一個服務器文檔時,服務器端的組件自動將文檔經過加密傳輸到客戶端,客戶端將自動檢驗文檔的完整性,以及是否被篡改。當客戶端保存文檔時,首先將文檔加密,然后發送到服務器上,服務器上的后端也自動檢驗文檔的完整性,以及是否被篡改,只有采用雙向驗證,才能保證文檔信息的安全可靠。
3、支持多種電子印章、手寫簽名認證功能
第一種:iWebOffice2003印章和簽名能夠達到數據庫級的認證,應用特有的DBPacketTM對象包協議技術,即任何蓋章和手寫簽名的相關信息,我們都在文檔本身和服務器的數據庫中各保存一份,這些信息包含蓋章簽名的用戶名,客戶機的IP地址,日期時間,同時自動根據這些信息生成全球唯一密碼驗證序列,從而保證印章簽名的安全性、可對比性,即使文件本身的印章簽名被篡改,也不會影響服務器數據庫中的記錄,從而保證文檔印章和簽名信息的安全可靠性能。
第二種:可以與iSignature專業手寫簽名,電子印章軟件結合,該技術能夠檢測文檔資料內容是否被修改,如果文件在加蓋印章或手寫簽名后,內容再次被修改,那么印章或簽名將自動顯示無效,該技術采用印章鑰匙盤作為印章硬件載體,手寫簽名支持各種手寫筆,從而真正實現系統的安全性。
4、支持多種文檔保存方式,保存過程簡單
第一種:支持文件保存到服務器數據庫中。第二種:支持文檔保存到服務器上的指定目錄中。第三種:混合保存模式,既保存到數據庫中,又保存到文件中。系統在服務器端提供的MsgFileBody屬性,就是文檔的二進制內容,通過對該屬性的存取,可以用來保存或取出數據庫記錄中的文檔,同時提供MsgFileSave(文件路徑)和MsgFileLoad(文件路徑)來打開和保存服務器上的文檔,使用過程非常簡單。
5、快速保存大容量文檔
系統采用HTTP協議快速保存大容量的文檔到服務器,應用特有的DBPacketTM對象包協議技術,能比正常保存方式所花的時間短三到五倍,可以在短時間內保存幾十M大的文檔。如:保存10M大的文檔到服務器目錄中,只需要約30秒就完成。
6、支持斷點續傳和進度條顯示跟蹤
在保存文檔到服務器時,系統應用特有的DBPacketTM對象包協議技術,實現對文檔的斷點續傳操作,取消保存后,可以再次接著上傳,并且實現進度條窗體的顯示,方便用戶跟蹤保存文檔進度。該功能可以用于文檔交換系統,如公文交換系統實現文檔的異地傳輸。
7、支持標簽管理、定位和標簽文字更改
擁有強大的前后臺數據交互功能,能夠在打開Word/Wps文件的狀態下,根據需要從服務器數據庫中提取相關數據,替換標簽處的文字內容。并且能夠做到在指定位置顯示指定內容的效果。
8、支持模板管理功能
在編寫公文時,經常需要用到各種標準公文模板,通過本功能結合標簽功能,能夠非常好的實現模板的管理。
9、支持模版套紅功能
應用特有的DBPacketTM對象包協議技術,支持擬稿時選擇模版套紅,也支持定稿后的模版套紅功能,并且實現文檔其它基本要素(如:標題、日期等)直接套到模板中,一次形成正式文檔,模板可以從數據庫、服務器目錄、本地目錄中讀取,方便開發。
10、支持原痕跡稿件和定稿稿件分別保存
在處理文檔時,通常需要將原稿和最終稿件分別保存起來,系統提供了定稿保存的方法WebUpdateFile,能夠非常簡單的解決問題。
11、支持在提交編輯文檔的同時,提交表單的其它數據
采用強大的擴展通訊技術,讓您在提交編輯文檔的同時,能夠非常方便的提交表單的其它數據,這可以讓您更加快速的集成現有的應用程序,或者創建新的應用程序。
12、支持Word或Excel文件發布為HTML
可以讓您將在線編輯的文檔(WORD和EXCEL)以HTML的方式發布到WEB服務器。讓沒有安裝控件的用戶也能夠方便的查看文檔。該功能可以實現文檔實時發布,在做內容管理或新聞管理時特別有用。
13、支持版本控制功能
支持版本自由控制,可以由用戶根據需要創建文擋的多個版本,并可以隨時調用以前保存的保本。
14、使用標準協議進行通訊,通用性好
底層通訊基于標準的HTTP/HTTPS協議開發,使得合作伙伴無須擔心技術的進步帶來后續維護和開發風險。
15、支持從服務器插入透明浮動圖片到Word,Excel文檔
支持將服務器圖片插入到Word文檔的指定位置,并可以設置透明、浮動效果。也支持圖片插入到Excel中。
16、支持將手寫簽名、電子印章增加到Word,Excel文檔
支持將手寫簽名、電子印章圖片插入到Word文檔的指定位置。還提供印章或簽名資源預保存功能,用戶可以通過密碼的方式來獲得自己的簽名或印章,印章和簽名與文檔保存在一起,印章或簽名可以功過系統的驗證來判斷真偽。
17、支持多種形式的文檔批注
支持文字、語音、錄影等多媒體批注,可以在不寫字的情況下實現批注。
18、支持禁止文檔內容拷貝的功能(包括屏幕拷貝)
支持禁止文檔內容拷貝、粘貼和屏幕拷貝。
19、支持HTTP協議,HTTPSOVERSSL協議
對HTTPS協議的支持使得可以創建更加安全的應用。并且自動支持SessionCookie。使用當前頁面的SessionCookie和服務器進行交互。
20、支持各種手寫筆錄入、簽名、繪圖和批注
支持各種手寫筆(漢王、蒙恬、聯想)錄入方式和使用手寫筆手寫簽名、手工繪圖和批注,其中手寫簽名完全支持筆鋒處理,字跡更加清晰自然。(手寫筆設備需支持WINTAB標準)
21、支持微軟OFFICE各種版本
所有版本都支持微軟OFFICE,6.5版本開始更支持OFFICE2007。(OFFICE高版本的特有文檔格式不被支持,當前僅支持“OFFICE2000-2003兼容格式”)
22、良好的文檔兼容性
完全兼容OFFICE和WPS文檔格式,生成的文檔可以用MSOFFICE、金山WPS、紅旗RedOffice等辦公軟件瀏覽和編輯。
23、支持簡潔高效的編程接口
提供Web方式的VBA接口,可以通過Javascript/Vbscript操作Word/Excel,就像VBA一樣。可以完全控制OFFICE文檔。
24、系統二次開發
提供強大的函數庫,支持多種系統環境,多種開發語言,多種數據庫。
25、在下載和上載Office文檔時不會產生臨時文件
[高級版]可以提供使用數據流作為Office文檔的數據源的技術方式,使控件打開文檔時客戶端本身不會產生臨時文件。
26、數字證書、可進行身份認證
[高級版]可提供數字認證功能,采用PKI加密認證體系,保證文件的真實性和不可抵賴性。
27、支持自定義菜單功能
5.0以上版本(含)正式支持用戶自定義菜單,更加方便用戶的操作。
28、符合ISO文檔
可以實現禁止F12、CTRL+P快捷鍵,滿足ISO文檔的要求。
29、禁止/允許打印功能
支持禁止/允許打印文檔的功能,防止文檔打印輸入。
30、插入遠程多種格式文件
支持多種格式文件直接插入當前打開的文檔中,如圖片、OFFICE文檔、TXT、HTML文件等。
31、打印有痕跡文檔功能
可以實現在只讀狀態下,打印帶有痕跡的文檔功能。
32、打開URL文檔
可以通過URL方式直接在iWebOffice中打開遠程文檔。
33、實現文檔全文檢索功能
支持提取文檔的TEXT內容并直接保存到數據庫中,方便用戶實現準確、快速全文檢索功能。
34、在文檔只讀狀態下加蓋印章功能
支持文檔在只讀狀態下,實現加蓋印章功能,保證文檔內容不可修改,同時不可刪除印章功能。
35、文檔數據智能填充功能
支持數據庫中的數據直接填充到文檔中,并且在指定位置處,可用于文檔內容與數據庫信息相互交互,類似方法有WebLoadBookmarks()。
36、文檔合并功能
提供強大的文檔合并編輯功能,可以直接從服務器數據庫、目錄或本地目錄中直接讀取文檔,進行智能定位合并,實現文檔結合發布,主要于多個文檔收集、采編、合并、發布。
37、打開和保存本地文檔
支持打開和保存本地文檔功能,可以直接打開本地文檔,同時也能直接將文檔保存到本地。
38、支持標準強制痕跡保留
支持標準強制痕跡保留格式,即使文檔脫離iWebOffice2003環境,也能保證痕跡的正確顯示。
39、支持多種操作系統,Web服務器,數據庫和編程語言
支持Windows、Linux、Unix等各種操作系統,支持IIS、Domino、Websphere、WebLogic、Apache等所有后臺WEB服務器類型,支持DB2、Oracle、SyBase、MySQL、SQLServer、Access等各種常用數據庫和JSP、ASP、PHP、VB.NET、C#.NET等多種編程語言。
40、支持FTP方式打開和保存文檔
支持使用FTP方式打開和保存文檔,并且實現帳號信息的加密,實現大文件的保存和快速打開,提供詳細二次開發接口,并且可以使用刪除FTP刪除文檔。
41、重設客戶機時間功能
支持重設客戶機時間為服務器時間,可以實現將痕跡保留時間控制為當前服務器時間。
42、全面兼容WPS
從WPS2005版本開始全面兼容WPS軟件,直接設置EditType=".wps"就可實現WPS在線編輯,其它接口保持與OFFICE一樣,實現更強大WPS功能應用。(僅支持WPS編輯WPS格式的文檔,不支持WPS編輯WORD格式的文檔,也不支持WORD編輯WPS格式的文檔)
43、支持WORD、EXCEL、WPS、ET文檔
支持更多常用文檔編輯器,提供WORD、EXCEL、WPS、ET文檔的支持功能,實現在線編輯、在線保存、打開本地文件、保存為本地文件、打印文檔等功能。(目前總共支持四種文檔格式:WORD、EXCEL、WPS、金山表格)
44、支持轉換成PDF文檔
支持將WORD文檔轉換成標準的PDF文檔并保存到服務器上(需安裝AdobeAcrobat軟件)。配合iWebPDF中間件[]使用將完善用戶的完美文檔操作、管理、瀏覽體驗。
45、支持自定義多級菜單
支持自定義菜單,并且菜單內可定制多級子菜單,方便用戶開發極具美觀和個性化的菜單功能。
46、支持文檔編輯器判斷
支持對當前機器環境中是否存在某個文檔編輯器進行判讀,方便用戶進行更多人性化的判斷和提示。
47、支持OFFICE2007界面控制
支持OFFICE2007選項卡界面的詳細控制,方便用戶定義獨特的文檔編輯UI界面。
?
?
代碼展示代碼如下:
?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html><head><title>編輯正文</title> <meta http-equiv="pragma" content="no-cache" /><meta http-equiv="cache-control" content="no-cache"/><meta http-equiv="expires" content="0"/> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"/><meta http-equiv="description" content="This is my page" /><script language="javascript" for=WebOffice event="OnMenuClick(vIndex,vCaption)">if (vIndex==1){ WebOpenLocal(); //打開本地文件}if (vIndex==2){ WebSaveLocal(); //保存本地文件}if (vIndex==3){SaveDocument(); //保存正文到服務器上(不退出)}if (vIndex==11){SaveDocument(); //保存正文到服務器上webform.submit(); //然后退出}if (vIndex==13){ WebOpenPrint(); //打印文檔}</script><script language=javascript> /* form表單名稱:webform iWebOffice名稱:WebOffice WebObject文檔對象接口,相當于:如:webform.WebOffice.WebObject */ //作用:顯示操作狀態 function StatusMsg(mString){alert(mString); } //作用:載入iWebOffice function Load(){try{//以下屬性必須設置,實始化iWebOfficewebform.WebOffice.WebUrl="$!path/servlet/DocController?method=openDoc"; //WebUrl:系統服務器路徑,與服務器文件交互操作,如保存、打開文檔,重要文件webform.WebOffice.RecordID="$!recordID"; //RecordID:本文檔記錄編號webform.WebOffice.Template=""; //Template:模板編號webform.WebOffice.FileName=""; //FileName:文檔名稱webform.WebOffice.FileType=".doc"; //FileType:文檔類型 .doc .xls .wpswebform.WebOffice.UserName="銀監會"; //UserName:操作用戶名,痕跡保留需要webform.WebOffice.EditType="1,1"; //EditType:編輯類型 方式一、方式二 <參考技術文檔>//第一位可以為0,1,2,3 其中:0不可編輯;1可以編輯,無痕跡;2可以編輯,有痕跡,不能修訂;3可以編輯,有痕跡,能修訂;//第二位可以為0,1 其中:0不可批注,1可以批注。可以參考iWebOffice2009的EditType屬性,詳細參考技術白皮書webform.WebOffice.MaxFileSize = 8 * 1024; //最大的文檔大小控制,默認是8M,現在設置成4M。webform.WebOffice.Language="CH"; //Language:多語言支持顯示選擇 CH 簡體 TW繁體 EN英文//webform.WebOffice.ShowWindow = true; //控制顯示打開或保存文檔的進度窗口,默認不顯示webform.WebOffice.ShowToolBar="1"; //ShowToolBar:是否顯示工具欄:1顯示,0不顯示//以上為自定義工具欄按鈕↑webform.WebOffice.ShowMenu="1"; //控制整體菜單顯示//以下為自定義菜單↓webform.WebOffice.AppendMenu("1","打開本地文件(&L)");webform.WebOffice.AppendMenu("2","保存本地文件(&S)");webform.WebOffice.AppendMenu("3","保存遠程文件(&U)");webform.WebOffice.AppendMenu("11","保存并退出(&E)");webform.WebOffice.AppendMenu("10","-");webform.WebOffice.AppendMenu("13","打印文檔(&P)");//以上為自定義菜單↑webform.WebOffice.DisableMenu("宏(&M);選項(&O)..."); //禁止某個(些)菜單項//WebSetRibbonUIXML(); //控制OFFICE2007的選項卡顯示 webform.WebOffice.WebOpen(); webform.WebOffice.WebObject.Application.ActiveWindow.View = 3 //打開該文檔 交互OfficeServer 調出文檔OPTION="LOADFILE" 調出模板OPTION="LOADTEMPLATE" <參考技術文檔>webform.WebOffice.ShowType=1; //文檔顯示方式 1:表示文字批注 2:表示手寫批注 0:表示文檔核稿// //狀態信息}catch(e){alert(e.description); //顯示出錯誤信息} }//作用:退出iWebOffice function UnLoad(){try{if (!webform.WebOffice.WebClose()){StatusMsg(webform.WebOffice.Status);}else{//StatusMsg("關閉文檔...");}}catch(e){alert(e.description);} }//作用:打開文檔 function LoadDocument(){StatusMsg("正在打開文檔...");if (!webform.WebOffice.WebOpen()){ //打開該文檔 交互OfficeServer的OPTION="LOADFILE"StatusMsg(webform.WebOffice.Status);}else{StatusMsg(webform.WebOffice.Status);} }//作用:保存文檔 function SaveDocument(){webform.WebOffice.WebUrl="$!path/servlet/DocController?method=saveDoc"; //webform.WebOffice.WebSetMsgByName("MyDefine1","自定義變量值1"); //設置變量MyDefine1="自定義變量值1",變量可以設置多個 在WebSave()時,一起提交到OfficeServer中if (!webform.WebOffice.WebSave(true)){ //交互OfficeServer的OPTION="SAVEFILE" 注:WebSave()是保存復合格式文件,包括OFFICE內容和手寫批注文檔;如只保存成OFFICE文檔格式,那么就設WebSave(true)//WebSaveAsHtml();StatusMsg(webform.WebOffice.Status);return false;}else{WebSaveAsHtml();StatusMsg(webform.WebOffice.Status);return true;} }//作用:刷新文檔 function WebReFresh(){webform.WebOffice.WebReFresh();StatusMsg("文檔已刷新..."); }//作用:打印文檔 function WebOpenPrint(){try{webform.WebOffice.WebOpenPrint();StatusMsg(webform.WebOffice.Status);}catch(e){alert(e.description);} }//作用:存為本地文件 function WebSaveLocal(){try{webform.WebOffice.WebSaveLocal();StatusMsg(webform.WebOffice.Status);}catch(e){alert(e.description);} }//作用:打開本地文件 function WebOpenLocal(){try{webform.WebOffice.WebOpenLocal();StatusMsg(webform.WebOffice.Status);}catch(e){alert(e.description);} }//作用:保存為HTML文檔 function WebSaveAsHtml(){webform.WebOffice.WebUrl="$!path/servlet/DocController?method=saveDoc"; try{if (webform.WebOffice.WebSaveAsHtml()) //交互OfficeServer的OPTION="SAVEASHTML"{//SaveDocument();}// StatusMsg(webform.WebOffice.Status);}catch(e){alert(e.description);} }//作用:客戶端和服務器端信息信息交互 function WebSendInformation(){var info = window.prompt("請輸入要傳到服務器處理頁面上的內容:","參數內容");if (info==null){return false}webform.WebOffice.WebSetMsgByName("COMMAND","SELFINFO"); //設置變量COMMAND="SELFINFO",用來在服務器端做判斷,以進入處理自定義參數傳遞的代碼。webform.WebOffice.WebSetMsgByName("TESTINFO",info); //自定義的一個參數"TESTINFO",將info變量的信息設置到信息包中,以便傳到后臺。if (webform.WebOffice.WebSendMessage()){ //向后臺發信息包。交互OfficeServer的OPTION="SENDMESSAGE"。info = webform.WebOffice.WebGetMsgByName("RETURNINFO"); //如果交互成功,接受服務器端返回的信息。}else{StatusMsg(webform.WebOffice.Status);} } </script> </head><body bgcolor="#ffffff" onLoad="Load()" onUnload="UnLoad()"> <!--引導和退出iWebOffice--><form name="webform" action="" method="post"><center><input type="button" id="btnret" value="保存" οnclick="SaveDocument();"/> <input type="button" id="btnret" value="返回" οnclick="javascript:history.go(-1);" /> </center> <script type="text/javascript">var str = '';str += '<object id="WebOffice" width="100%" height="100%" classid="clsid:8B23EA28-723C-402F-92C4-59BE0E063499" codebase="$!path/main/cms/setup/iWebOffice2006.cab#version=7,6,0,2">';str += '</object>';document.write(str);</script></form></body> </html>
?
后臺保存的代碼:
private void saveAsHtml(HttpServletRequest request, HttpServletResponse response,WebFile webFile,IDocEntity docEService){String mOption = ""; String mHtmlName = ""; String mDirectory = "";String fileType = "";//文件保存路徑 String filePath = docEService.getFilePath();LoadStartDataManagerImpl loadStartDate = (LoadStartDataManagerImpl)ServiceFactory.findBean("loadStartData");String filePath=loadStartDate.getBaseUrl()+loadStartDate.getKindeditorImagesPath();String docPath=loadStartDate.getBaseUrl()+loadStartDate.getKindeditorFilePath();fileType = webFile.GetMsgByName("FILETYPE").trim();String mRecordID = webFile.GetMsgByName("RECORDID").trim(); //要對recordID進行判讀DocEntity docE = docEService.getDocEByID(mRecordID);if (request.getMethod().equalsIgnoreCase("POST")) { if (webFile.GetMsgByName("DBSTEP").trim().equalsIgnoreCase("DBSTEP")) {mOption = webFile.GetMsgByName("OPTION").trim(); //保存文檔.docif (mOption.equalsIgnoreCase("SAVEFILE")) {if (!(new File(docPath)).isDirectory())(new File(docPath)).mkdirs();webFile.MsgTextClear();if (webFile.MsgFileSave(docPath+"/"+mRecordID+fileType)) {webFile.MsgError("");webFile.SetMsgByName("STATUS", "����HTML�?�!");} else {webFile.MsgError("保存失敗����HTML?��!");}webFile.MsgFileClear();webFile.MsgTextClear();}//保存為html文檔if (mOption.equalsIgnoreCase("SAVEASHTML")) {mHtmlName = webFile.GetMsgByName("HTMLNAME").trim();mDirectory = webFile.GetMsgByName("DIRECTORY").trim();if (!(new File(filePath)).isDirectory())(new File(filePath)).mkdirs();webFile.MsgTextClear(); if (mDirectory.trim().equalsIgnoreCase("")){ webFile.MakeDirectory(filePath);//保存html文件 if(docE == null){docE = new DocEntity();docE.setDocId(mRecordID);} if (docEService.addDocE(MsgFileSaveH(docE,webFile))){ File docFile = new File(filePath+"/"+ docE.getDocId()+".files");try {FileTools.deleteDir(docFile);} catch (IOException e) {e.printStackTrace();}webFile.MsgError("");} else {webFile.MsgError("����HTML?��!");}}else {//保存圖片文件filePath = filePath +"/"+ mDirectory;webFile.MakeDirectory(filePath);if (webFile.MsgFileSave(filePath + "/" + mHtmlName)) {webFile.MsgError("");webFile.SetMsgByName("STATUS", "����HTML�?�!");} else {webFile.MsgError("����HTML?��!");}}webFile.MsgFileClear();}} else {webFile.MsgError("�?��?�����?����!");webFile.MsgTextClear();webFile.MsgFileClear();}} else {webFile.MsgError("��?��Post����");webFile.MsgTextClear();webFile.MsgFileClear();}SendPackage(response, webFile);}
?
運行效果如下:
?
?
?
?
?
總結
以上是生活随笔為你收集整理的在线office编辑 iWebOffice系列的交互操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 卸载服务
- 下一篇: Win11设置定时关机命令没反应怎么办?