在线office文档编辑NTKO使用心得
目錄
前言
什么是ntko
準(zhǔn)備工作
實(shí)戰(zhàn)演練
總結(jié)
一、前言
Web開(kāi)發(fā)中經(jīng)常需要用到在線處理office文檔的功能,現(xiàn)在市面上有一些常用的Web頁(yè)面調(diào)用顯示Office的控件技術(shù),用起來(lái)很方便。有一些第三方ActiveX瀏覽器控件:比如科瀚的SOAOffice中間件、卓正軟件的pageoffice控件、WebOffice控件還有我這篇文章所要說(shuō)到的NTKO。
二、什么是NTKO
通俗易懂來(lái)講就是能夠直接在瀏覽器上查看編輯word文檔,并保存到web服務(wù)器上的控件。
借用官方的話,是能夠在IE,火狐,谷歌等內(nèi)核瀏覽器中直接編輯WPS,MS Office ,金山電子表等文檔并保存到web服務(wù)器上,實(shí)現(xiàn)文檔和電子表格的統(tǒng)一管理。并具備痕跡保留、模板套紅、二維碼、pdf及tif閱讀等辦公自動(dòng)化系統(tǒng)的必備功能。大家可以具體查看官網(wǎng)釋義。
優(yōu)點(diǎn):
能夠支持跨瀏覽器編輯文檔。
支持多種開(kāi)發(fā)語(yǔ)言(asp、asp.net、jsp、php、vb.net、c#等)。
支持多線程上傳下載等
缺點(diǎn):
打開(kāi)文檔速度有點(diǎn)慢,可能和電腦性能有關(guān)系。
目前功能還不完善,暫時(shí)沒(méi)有SOAOffice提供的功能多。
三、準(zhǔn)備工作
測(cè)試環(huán)境:瀏覽器:IE7及以上;操作系統(tǒng):Windows操作系統(tǒng);本地Office:Office 2003-2013;(聽(tīng)說(shuō)ntko還不支持office 2016)注意Office必須是完整版的
官方提供的js,css,cab: 1.ntko.js 2.ntkoofficecontrol.js 3.ComFun_OA8.js 4.OfficeControl.cab 5.Css_One.css (這些官網(wǎng)都能下載到)
.cab文件百度百科的意思是:windows的壓縮格式,用winrar可以打開(kāi),但有些是經(jīng)過(guò)加密的,用一般的壓縮程序都是打不開(kāi)的。這里的OfficeControl是必不可少的,他是Web頁(yè)面調(diào)用本地服務(wù)器的接口。
由于NTKO是ActiveX控件,通過(guò)瀏覽器操作本地控件時(shí),需要通過(guò)操作的用戶權(quán)限必須是管理員用戶,這樣才能正常加載。因此通過(guò)將應(yīng)用系統(tǒng)站點(diǎn)加入到IE瀏覽器可信任站點(diǎn)中可以解決這個(gè)問(wèn)題。設(shè)置完成之后重啟瀏覽器
如果出現(xiàn)不能裝載文檔控件,請(qǐng)?jiān)跈z查瀏覽器的選項(xiàng)中檢查瀏覽器的安全設(shè)置。官網(wǎng)的解決辦法如下:
此問(wèn)題和控件本身無(wú)關(guān),為了解決NTKO不能自動(dòng)裝載的問(wèn)題,我們先來(lái)看看瀏覽器對(duì)象所涉及到的步驟。
首先是HTML中引用的代碼:
<object id="TANGER_OCX" classid="clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404" codebase="/path/to/OfficeControl.cab#version=4,0,0,5" width="100%" height="100%">
1.id="TANGER_OCX" 是標(biāo)識(shí)控件js的編程標(biāo)識(shí),通過(guò)documnet.all("TANGER_OCX")得到控件的引用。
2.clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404 標(biāo)識(shí)ntko文檔的唯一標(biāo)識(shí),瀏覽器通過(guò)clsid來(lái)判定訪問(wèn)網(wǎng)頁(yè)的客戶機(jī)有沒(méi)有安裝ntko。
3.codebase 這個(gè)不用說(shuō)了,看一下大概知道這是放置文件路徑的意思,version代表控件版本號(hào)。
出現(xiàn)裝載文檔控件,請(qǐng)?jiān)跈z查瀏覽器的選項(xiàng)中檢查瀏覽器的安全設(shè)置問(wèn)題大概有下面幾個(gè)原因
1)本地Internet選項(xiàng)中的安全設(shè)定,在當(dāng)前區(qū)域禁止下載已簽名的ActiveX控件;
2)引用控件的網(wǎng)頁(yè)中,<object 標(biāo)記中的codebase屬性指定不正確,導(dǎo)致瀏覽器無(wú)法下載OfficeControl.cab文件;
3)服務(wù)器上的OfficeControl.cab被破壞,失去正確的簽名,或者使用了不正確的版本;
4)雖然服務(wù)器上的OfficeControl.cab正確,但是瀏覽器下載的有問(wèn)題。這個(gè)可能會(huì)因?yàn)槟承¦EB服務(wù)器的mime的錯(cuò)誤配置引起,導(dǎo)致服務(wù)器將OfficeControl.cab不以二進(jìn)制文件的形式發(fā)送給瀏覽器;
5)本地Internet選項(xiàng)中的安全設(shè)定,在當(dāng)前區(qū)域不允許運(yùn)行ActiveX控件和插件;
6)還有可能是由于微軟的補(bǔ)丁引起,或者其他防病毒軟件或者過(guò)濾軟件阻止了控件安裝
如果還有其他問(wèn)題,可以登錄官網(wǎng)問(wèn)題處理解決。
四、實(shí)戰(zhàn)演練
下面就利用我最近在做的一個(gè)項(xiàng)目實(shí)例講一下ntko的原理,功能需求就貼圖顯示把。
首先是在頁(yè)面中新增數(shù)據(jù),提交操作后往對(duì)應(yīng)數(shù)據(jù)庫(kù)數(shù)據(jù)表中插入數(shù)據(jù)。
圖1
其次在提交操作提示成功后,在申報(bào)材料下填報(bào),點(diǎn)擊填報(bào)后,跳轉(zhuǎn)申報(bào)表頁(yè)面,調(diào)用ntko控件,如圖3。
圖2
申報(bào)表頁(yè)面如下圖,因?yàn)槭钦{(diào)用的本地Office,所以頁(yè)面上保留Office中所帶有的功能,包括常見(jiàn)的字體設(shè)置,插入,設(shè)計(jì)等等。
圖3
至于在線編輯word中的內(nèi)容是數(shù)據(jù)庫(kù)中對(duì)應(yīng)字段通過(guò)書(shū)簽形式綁定到word模板中,如圖4。在線編輯首先需要?jiǎng)?chuàng)建一個(gè)空word模板,當(dāng)然word中樣式自己排版,然后將需要綁定字段的地方插入書(shū)簽,書(shū)簽是對(duì)應(yīng)數(shù)據(jù)表中的字段綁定。
圖4
最后在html頁(yè)面 首次加載頁(yè)面js中引用一下方法,有些不懂的釋義可以查閱官網(wǎng)Api了解。
function window_onload() {
var DocPrintUrl = '<%=ViewState["DocPrintUrl"].ToString() %>';//獲取doc模板地址
//var DocPrintUrl = 'PX_OpenFile_List.aspx';
OpenEditOffice(DocPrintUrl, "1");//調(diào)用ntko.js中編輯文檔方法
SetReviewMode(true);//修訂模式
setShowRevisions(false);//顯示痕跡
TANGER_OCX_OBJ.Menubar = true;//是否顯示菜單欄
TANGER_OCX_OBJ.TitleBar = true;//是否顯示標(biāo)題欄
SetBookmarkValue("ZX_QYMC", '<%=ViewState["UnitName"].ToString()%>');//往word書(shū)簽中增加內(nèi)容
}
五、總結(jié)
NTKO以及其他第三方ActiveX控件帶給我們很大的便利性,它能夠自動(dòng)識(shí)別修改過(guò)得文檔,提示保存服務(wù)器中,免去了之前下載----修改----上傳的復(fù)雜過(guò)程,實(shí)現(xiàn)了在線編輯,在線預(yù)覽,電子印章,附件管理,大文件上傳等等功能。但也有不少缺點(diǎn),在Html,Css以及桌面逐漸轉(zhuǎn)換,控件也有可能早晚會(huì)被淘汰。
總結(jié)
以上是生活随笔為你收集整理的在线office文档编辑NTKO使用心得的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oracle or 循环 查询,Orac
- 下一篇: 香港举行车牌拍卖 自定义车牌“R”以25