在線office文檔編輯NTKO使用心得

目錄

  • 前言
  • 什麼是ntko
  • 準備工做
  • 實戰演練
  • 總結

1、前言

  Web開發中常常須要用到在線處理office文檔的功能,如今市面上有一些經常使用的Web頁面調用顯示Office的控件技術,用起來很方便。有一些第三方ActiveX瀏覽器控件:好比科瀚的SOAOffice中間件、卓正軟件的pageoffice控件、WebOffice控件還有我這篇文章所要說到的NTKO。php

2、什麼是NTKO

  通俗易懂來說就是可以直接在瀏覽器上查看編輯word文檔,並保存到web服務器上的控件。css

  借用官方的話,是可以在IE,火狐,谷歌等內核瀏覽器中直接編輯WPS,MS Office ,金山電子錶等文檔並保存到web服務器上,實現文檔和電子表格的統一管理。並具有痕跡保留、模板套紅、二維碼、pdf及tif閱讀等辦公自動化系統的必備功能。你們能夠具體查看官網釋義。html

優勢:web

  1.   可以支持跨瀏覽器編輯文檔。
  2.   支持多種開發語言(asp、asp.net、jsp、php、vb.net、c#等)。
  3.   支持多線程上傳下載等

缺點:數據庫

  1.   打開文檔速度有點慢,可能和電腦性能有關係。
  2.   目前功能還不完善,暫時沒有SOAOffice提供的功能多。

3、準備工做

  測試環境:瀏覽器:IE7及以上;操做系統:Windows操做系統;本地Office:Office 2003-2013;(據說ntko還不支持office 2016)注意Office必須是完整版的編程

    官方提供的js,css,cab:  1.ntko.js  2.ntkoofficecontrol.js   3.ComFun_OA8.js  4.OfficeControl.cab  5.Css_One.css  (這些官網都能下載到) c#

  .cab文件百度百科的意思是:windows的壓縮格式,用winrar能夠打開,但有些是通過加密的,用通常的壓縮程序都是打不開的。這裏的OfficeControl是必不可少的,他是Web頁面調用本地服務器的接口。windows

  因爲NTKO是ActiveX控件,經過瀏覽器操做本地控件時,須要經過操做的用戶權限必須是管理員用戶,這樣才能正常加載。所以經過將應用系統站點加入到IE瀏覽器可信任站點中能夠解決這個問題。設置完成以後重啓瀏覽器瀏覽器

  若是出現不能裝載文檔控件,請在檢查瀏覽器的選項中檢查瀏覽器的安全設置。官網的解決辦法以下:安全

 

此問題和控件自己無關,爲了解決NTKO不能自動裝載的問題,咱們先來看看瀏覽器對象所涉及到的步驟。

  首先是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"   是標識控件js的編程標識,經過documnet.all("TANGER_OCX")獲得控件的引用。

  2.clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404  標識ntko文檔的惟一標識,瀏覽器經過clsid來斷定訪問網頁的客戶機有沒有安裝ntko。

  3.codebase  這個不用說了,看一下大概知道這是放置文件路徑的意思,version表明控件版本號。

  出現裝載文檔控件,請在檢查瀏覽器的選項中檢查瀏覽器的安全設置問題大概有下面幾個緣由

    1)本地Internet選項中的安全設定,在當前區域禁止下載已簽名的ActiveX控件;
    2)引用控件的網頁中,<object 標記中的codebase屬性指定不正確,致使瀏覽器沒法下載OfficeControl.cab文件;
    3)服務器上的OfficeControl.cab被破壞,失去正確的簽名,或者使用了不正確的版本;
    4)雖然服務器上的OfficeControl.cab正確,可是瀏覽器下載的有問題。這個可能會由於某些WEB服務器的mime的錯誤配置引發,致使服務器將OfficeControl.cab不以二進制文件的形式發送給瀏覽器;
    5)本地Internet選項中的安全設定,在當前區域不容許運行ActiveX控件和插件;
    6)還有多是因爲微軟的補丁引發,或者其餘防病毒軟件或者過濾軟件阻止了控件安裝

  若是還有其餘問題,能夠登陸官網問題處理解決。

4、實戰演練

  下面就利用我最近在作的一個項目實例講一下ntko的原理,功能需求就貼圖顯示把。

首先是在頁面中新增數據,提交操做後往對應數據庫數據表中插入數據。

圖1

其次在提交操做提示成功後,在申報材料下填報,點擊填報後,跳轉申報表頁面,調用ntko控件,如圖3。

圖2

申報表頁面以下圖,由於是調用的本地Office,因此頁面上保留Office中所帶有的功能,包括常見的字體設置,插入,設計等等。

圖3

  至於在線編輯word中的內容是數據庫中對應字段經過書籤形式綁定到word模板中,如圖4。在線編輯首先須要建立一個空word模板,固然word中樣式本身排版,而後將須要綁定字段的地方插入書籤,書籤是對應數據表中的字段綁定。

圖4

  最後在html頁面 首次加載頁面js中引用一下方法,有些不懂的釋義能夠查閱官網Api瞭解。

 function window_onload() {
       
        var DocPrintUrl = '<%=ViewState["DocPrintUrl"].ToString() %>';//獲取doc模板地址
        //var DocPrintUrl = 'PX_OpenFile_List.aspx';
        OpenEditOffice(DocPrintUrl, "1");//調用ntko.js中編輯文檔方法

        SetReviewMode(true);//修訂模式
        setShowRevisions(false);//顯示痕跡

        TANGER_OCX_OBJ.Menubar = true;//是否顯示菜單欄 
        TANGER_OCX_OBJ.TitleBar = true;//是否顯示標題欄
     SetBookmarkValue("ZX_QYMC", '<%=ViewState["UnitName"].ToString()%>');//往word書籤中增長內容
}

5、總結

  NTKO以及其餘第三方ActiveX控件帶給咱們很大的便利性,它可以自動識別修改過得文檔,提示保存服務器中,免去了以前下載----修改----上傳的複雜過程,實現了在線編輯,在線預覽,電子印章,附件管理,大文件上傳等等功能。但也有很多缺點,在Html,Css以及桌面逐漸轉換,控件也有可能遲早會被淘汰。

相關文章
相關標籤/搜索