[ASP.NET]NTKO插件使用常見問題
一、環境要求
NTKO OFFICE文檔控件能夠在IE、谷歌Chrome、Firefox等瀏覽器中直接編輯MS Office、WPS、金山電子表、永中Office等文檔並保存到WEB服務器。(標準版對IE瀏覽器的兼容進行了驗證,其他瀏覽器並未驗證)
使用Ntkooffice套打,對配置環境要求較高,以MS office為例,需要安裝完整版Office。
備註:文檔控件是ActiveX控件,通過瀏覽器操作本地的office,所以說系統用戶的權限必須管理員身份,這樣控件才能正常的加載;還有就是訪問的系統裏面有文檔控件,必須將這個系統加入到IE的可信任站點中去;
加入可信站點如圖:IE工具欄-Internet選項
這保護模式不要啟用;
這https驗證取消,然後點擊添加就行了;
如果在使用文檔控件,在office文檔和表單中的附件一並保存的時候出現失敗;
檢查一下IE安全設置,將“將文件上載到服務器時包含了本地目錄路徑” 啟用 如圖:
二、常見錯誤
2.1 問題:彈出下圖“對象不支持”提示
解決方法:第一次運行時需要允許加載項,然後刷新後重新打開打印頁面。
2.2 問題:NTKO OFFICE文檔控件不能自動裝載
原因分析:控件不能自動加載主要有以下原因導致
1)本地Internet選項中的安全設定,在當前區域禁止下載已簽名的ActiveX控件;
2)引用控件的網頁中,<object 標記中的codebase屬性指定不正確,導致瀏覽器無法下載OfficeControl.cab文件;
3)服務器上的OfficeControl.cab被破壞,失去正確的簽名,或者使用了不正確的版本;
4)雖然服務器上的OfficeControl.cab正確,但是瀏覽器下載的有問題。這個可能會因為某些WEB服務器的mime的錯誤配置引起,導致服務器將OfficeControl.cab不以二進制文件的形式發送給瀏覽器;
5)本地Internet選項中的安全設定,在當前區域不允許運行ActiveX控件和插件;
6)還有可能是由於微軟的補丁引起,或者其他防病毒軟件或者過濾軟件阻止了控件安裝;
解決方法:
1) 確認本地Internet選項中的安全設定中,允許下載已簽名的ActiveX控件,並允許運行ActiveX控件和插件。
2)確認引用控件的網頁中,<object 標記中的codebase=部分,正確指向了服務器上的OfficeControl.cab文件的URL[相對當前網頁或者相對服務器根]。
3)從瀏覽器地址欄直接輸入服務器上的OfficeControl.cab文件的URL,包含主機名,確認瀏覽器出現下載提示並且在下載保存後的OfficeControl.cab文件上,點擊右鍵看屬性,在出現的對話框中具有“數字簽名”,且簽名正確。
4)如果以上方法還不能解決問題,並且您的系統安裝了“微軟累積安全更新 MS05-052補丁”,請嘗試如下步驟:
警告:如果使用註冊表編輯器或其他方法錯誤地修改了註冊表,則可能導致嚴重問題。這些問題可能需要重新安裝操作系統才能解決。
1、單擊“開始”,單擊“運行”,鍵入
Regedit.exe,然後單擊“確定”。
2、找到以下註冊表子項:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet
Explorer\ActiveX Compatibility
3、右鍵單擊“ActiveX
Compatibility”,查找NTKO
OFFICE文檔控件的CLSID:{C9BC4DFF-4248-4a3c-8A49-63A7D317F404},如果該項目存在,右鍵單擊右邊的“Compatibility
Flags”項目,然後單擊“修改”。在“數值數據”框中,選擇16進制,輸入00800000,然後單擊“確定”。
4、如果該NTKO
OFFICE文檔控件的CLSID不存在,則右鍵單擊“ActiveX Compatibility”,指向“新建”,單擊“項”,鍵入NTKO
OFFICE文檔控件的CLSID:{C9BC4DFF-4248-4a3c-8A49-63A7D317F404},然後按 Enter。
5、右鍵單擊您在步驟
4 中創建的項,指向“新建”,然後單擊“DWORD 值”。
6、鍵入
Compatibility Flags,然後按 Enter。
7、右鍵單擊“Compatibility
Flags”,然後單擊“修改”。
8、在“數值數據”框中,選擇16進制,輸入00800000,然後單擊“確定”。
9、退出註冊表編輯器。
5)如果以上方法還不能解決問題,嘗試暫時關閉防病毒軟件或者其他過濾軟件再進行安裝。
6)如果還是不能解決問題,可能是機器配置被破壞,可以嘗試進行手工安裝。具體請參考相關文檔。
2.3 問題:加載文檔時出現“下載文檔數據失敗”對話框
解決方法:
錯誤原因是後臺url數據錯誤。可以嘗試從瀏覽器打開url,如果是後臺錯誤,可以看到詳細的錯誤信息。如果瀏覽器可以打開,控件不能打開,則可以試試設定控件屬性<param name=”IsUseUTF8URL” value=”-1”>
2.4 問題:加載文檔時出現“您沒有正確安裝OFFICE,或者請求創建一個系統不支持的OLE文檔類型”錯誤
解決方法:
這個錯誤是因為接口沒有註冊。跟控件本身無關。可以嘗試1、打開windows的“寫字板”應用程序,選擇插入word文檔對象。如果這個出錯,可以確定是office安裝問題,或者是因為ole32.dll沒有註冊。2、可以嘗試在命令行運行“regsvr32.dll”,再試試。3、如果不行,可以徹底卸載office,重新安裝。
2.5 問題:控件為什麽有時加載文檔顯示空白,有時可正常加載
這個可能是在body中直接調用OpenFromUrl/BeginOpenFromUrl,但此時控件並未完全初始化/加載完畢,所以出現空白。解決:可以在<body onload=”…”>中調用js函數,這樣可以確保在瀏覽器加載控件完畢之後,才在該js函數中調用OpenFromUrl/BeginOpenFromUrl,這樣就可以解決了
2.6 問題:文件存取錯誤
解決方法:
首先按照備註操作,將系統加入到IE的可信站點中去;如果加入了可信站點還是報文件存取錯誤的話那就是本機office的問題了,本機office是精簡版的office,卸載了本機的然後重裝一個完整的office;
1.環境問題,按照以下步驟檢查
1)在寫字板插入word對象試試,如果不報錯,說明office是正確安裝的
2)打開命令行,然後輸入regsvr32 ole32.dll (win7需要這樣打開:所有程序 附件 命令行#鼠標右鍵以管理員身份執行)
3)如果1)2)都沒有問題,可以打開任務管理器看看是否有未結束的WINWORD.EXE EXCEL.EXE進程,關閉試試
4)刪除normal.dot normal.dotx試試,這兩個文件是office的模板文件,在目錄C:\Documents and Settings\當前用戶\Application Data\Microsoft\Templates下
5)windows7還可以嘗試把OA或系統的IP加入信任站點,取消保護模式試試
6)如果以上方法都不行,請重新安裝office試試(推薦完全安裝)
只有部分文檔打開時報錯
2.文檔被損壞
1)由於未知原因,文檔被損壞,這時,可以把從本地打開這個文檔,另存一份出來試試控件是否能打開
2.7 問題:使用文檔控件打開服務器上面的文檔時,出現文件傳輸錯誤
解決方法:
控件對象.openFromUrl(url);參數url必須能夠返回標準文檔的二進制數據流。它可以直接指向服務器上的一個word文檔或者頁面(這個頁面讀取文檔的數據流,並返回給客戶端)。
出現錯誤分為下面幾種情況:
1:url錯誤。如果url沒有問題在瀏覽器的地址欄直接輸入url對應的全url應該能夠下載word文檔。如果url有問題,控件無法獲取文檔數據,就會提示“文件傳輸錯誤”。
2:編碼問題。比如url中帶有中文字符,瀏覽器對url編碼導至url被破壞。服務器根據被破壞的url當然也不能返回正確的word二進制流。可以通過設置控件的isuseutf8url=-1(即使用utf8對url編碼)。有的時候即使設置了isuseutf8url=-1也不能解決問題。根據經驗,可以調用url=escape(url);來重新對url編碼一次,然後再調用openFromUrl(url)。
3:服務器設置本身就不支持中文的url。比如tomcat服務器,是可以通過服務器配置文件來設置url編碼,有的編碼格式本來就不支持中文。這種情況就需要重新設置能夠支持中文的url編碼格式。
保存文檔回服務器時報“文件傳輸錯誤” |
2.8 問題:控件使用一段時間後突然提示"您正在運行的NTKO OFFICE文檔控件是演示版本已經到期,不能繼續使用。(.net版本)
解決方法:
到標準版部署包中拷貝下圖的3個文件 ,覆蓋項目組對應路徑下的文件。
2.9 問題:檢測其他地方沒有任何問題就是文檔保存的時候出現不知名錯誤
解決方法:
可能引起的原因就是在:打開文檔Openfromurl第二個參數或者BeginOpenfromURL第三個只讀屬性設置為true,這樣就不能將文檔保存回服務器;所以解決方案就是將這個參數設置為false就可以解決;
2.10 問題:當客戶端的office版本含有2003、2007和2010,保存文檔的時候怎樣處理兼容問題
解決方法:
因為低版本的office不能兼容高版本的office文檔格式(如office2003不能打開07和10文檔),所以建議在保存文檔時候可以使用SaveAsOtherFormatToURL方法,該方法用來將文檔保存為其他格式的文件到指定的URL。除第一個參數之外,其他參數的格式以及返回值,和SaveToURL方法的參數一致。
第一個參數指明要保存的文件類型:
對Word文檔而言,第一個參數的含義如下:
0:保存為word Txt格式;
1:保存為MHT格式。需要客戶機安裝OFFICE XP及以上版本;
2:保存為XML格式。需要客戶機安裝OFFICE 2003及以上版本;
3:保存為RTF格式;
4:保存為UnicodeText格式;
5:保存為兼容WORD文檔格式;
對Excel文檔而言,第一個參數的含義如下:
0:保存為Txt格式;
1:保存為MHT格式。需要客戶機安裝OFFICE XP及以上版本;
2:保存為XML格式。需要客戶機安裝OFFICE 2003及以上版本;
3:保存為CSV格式;
4:保存為UnicodeText格式;
5:保存為Excel7格式;
7:保存為Excel95格式;
對PowerPoint文檔而言,第一個參數的含義如下:
0:保存為GIF格式;
1:保存為MHT格式。需要客戶機安裝OFFICE XP及以上版本;
2:保存為JPG格式。
3:保存為RTF格式;
4:保存為PNG格式;
三、其他
3.1 問題:頁面分辨率問題
大屏顯示器可能會存在頁面顯示不美觀的問題
解決方法:需要使用大屏顯示的項目組可以個性化調整頁面。
3.2 問題:附件誤刪問題
假如已經打開證照並且編輯進行了保存操作,則會在框架目錄下的對應文件夾下生成一個附件實例,這個時候如果誤刪實例,則會出現圖2的錯誤。
EpointFrame\BigFileUpLoadStorage\2017\1\EpointFrame
圖1:
圖2:
3.3 問題:瀏覽器兼容性問題
標準版對IE及360瀏覽器做了兼容性驗證:
兼容IE 不兼容360
對官網宣傳的谷歌Chrome、Firefox瀏覽器未進行驗證。
[ASP.NET]NTKO插件使用常見問題