1、空军雷达学院 文档整理 毒药 第 1 / 12 页NTKO Office 控件学习文档空军雷达学院 文档整理 毒药 第 2 / 12 页目 录1. 功能介绍 32. 开发的总体流程 33. 编程的一般过程 54. 导出 word 文档编程介绍 75. 其它说明: 11空军雷达学院 文档整理 毒药 第 3 / 12 页1. 功能介绍使用 NTKO Office 文档控件,能够在浏览器窗口中直接编辑 Word,Excel 等Office 文档并保存到 Web 服务器。实现文档和电子表格的统一管理。它能够将编辑过的 Office 文档直接保存到 Web 服务器;支持在线编辑包括Microsoft W
2、ord,Excel 以及 PowerPoint 在内的所有 Office 文档类型;支持各种后台 Web 服务器和编程语言。并且可以在浏览器中通过 JScript 或者 VBScript 使用控件提供的属性和方法控制文档操作。2. 开发的总体流程空军雷达学院 文档整理 毒药 第 4 / 12 页 浏览器通过页面装载控件,并且在页面的 body 的 onload 代码中,通过标记的 id,得到控件对象。并调用控件对象.BeginOpenFromURL(URL)或者控件对象.OpenFromURL(URL)方法打开文档。这个 URL 可以是服务器上的一个实际存在的文件,比如,uploadOffic
3、eFile/ mydoc.doc,也可以从其它页面或服务中传一个 id 参数,比如, /editoffice.jsp?id=4。我们以BeginOpenFromURL(“/editoffice.jsp?id=4“)为例。(或者,如果是新建文档,本步骤也可以直接调用控件对象.CreateNew(“Word.Document“)创建新文档。如果是这样,则直接跳转到第步) 此时,NTKO OFFICE 文档控件执行 BeginOpenFromURL 方法,此方法将向 WEB 服务器发送一个 GET 请求,请求服务器 URL:“/editoffice.jsp?id=4“。 WEB 服务器收到控件的请求
4、之后,执行 editoffice.jsp,在此脚本中,获得id 的值,根据需要连接数据库服务器读取文件,或者直接从本机磁盘读取文件。 如果 WEB 服务器从数据库请求数据,数据库返回数据给 WEB 服务器脚本。 WEB 服务器将第 步或者第步得到的文件流数据,以二进制流方式返回给控件。控件接收到数据之后将显示文档。如果中间的任何步骤出错,根据不同的情况,控件将显示“网络传输错误” 或者“文件存取错误” 。 用户编辑文档之后,点击网页上的按钮保存,网页按钮通过 JavaScript 或者 VBScript 代码,调用控件对象.SaveToURL 方法。比如,我们假设调用的方法是控件对象.Save
5、ToURL(“uploadedit.jsp“,“EDITFILE“,“,“mydoc.doc“,0); 控件执行 SaveToURL 方法。将 SaveToURL 方法的第 5 个参数指定的FORM 中的数据提取,并和文档控件中的数据一起,向 WEB 服务器发送一个 post 请求到 SaveToURL 方法的第 5 个参数指定的 URL,也就是“uploadedit.jsp“。 WEB 服务器接收到请求并调用“uploadedit.jsp“处理请求。从“uploadedit.jsp“看来,相当于用户提交了一个 FORM,只是 FORM 中多了一个文件域,并且用户选中了一个文件“mydoc.d
6、oc“。“EDITFILE“和“mydoc.doc“都是客户端 JavaScript 通过参数调用传递给 SaveToURL 方法的,都可以自己定义。 WEB 服务器执行“uploadedit.jsp“,读取控件提交的数据和文件,可以将数据保存到数据库服务器,或者保存到服务器本空军雷达学院 文档整理 毒药 第 5 / 12 页机磁盘。如果执行成功或者失败,WEB 服务器应该向控件返回一个字符串来标识执行的状态。如果 WEB 服务器执行“uploadedit.jsp“的时候遇到了错误,则返回给控件的 HTTP 状态码不是 200 Ok 的时候,控件将显示 “网络传输错误”。3. 编程的一般过程在
7、网页中使用 NTKO OFFICE 文档控件的一般编程过程如下:1)在网页的 HTML 的 Head 的var ntkoobj = null;/初始化文档的 function。docURL 是文档在服务器上的相对当前网页的 URL,或者绝对 URLfunction initDoc(docURL) 代码具体描述如后2)在网页中合适的地方,使用引入用于创建NTKO OFFICE 文档控件的 js 文件。比如: 空军雷达学院 文档整理 毒药 第 6 / 12 页3)在网页的同名目录,创建一个 js 文件,命名为 ntkoGenObj.js 其内容如下: document.write( );docum
8、ent.write( );document.write( );document.write( );document.write( );document.write(不能装载 NTKO OFFICE 文档控件。请在检查浏览器的选项中检查浏览器的安全设置。 );document.write( );4)在 HTML 网页的的 onload 的代码中,调用初始化文档的代码。 initDoc(docURL).其中 docURL 是需要打开的文档的 URL.docURL 可以是一个后台的 ASP,JSP 等变量。比如。比如: “;)5)在 function initDoc(docURL)的实现中,加入如下
9、代码: function initDoc(docURL) /得到控件对象变量ntkoobj = document.all(“TANGER_OCX“); /“TANGER_OCX“是网页中的NTKO OFFICE 文档控件的 IDif(null = ntkoobj) alert(“NTKO OFFICE 文档控件未能正确装载。请在本页面装载时窗口上方出现的提示条上点击安装 ActiveX 控件,并在随后出现的安装 ActiveX 的对话框中选择 是。“);return;空军雷达学院 文档整理 毒药 第 7 / 12 页/如果没有传入 docURL,则创建一个 Word 文档对象。if( (nul
10、l = docURL) | (0 = docURL.length) ) ntkoobj .CreateNew(“Word.Document“);else /否则,调用 NTKO OFFICE 文档控件的 BeginOpenFromURL 方法打开服务器上的文档 ntkoobj.BeginOpenFromURL(docURL);6)接管控件的 OnDocumentOpened 事件,继续执行其它操作。如下所示: /此时文档已经打开,可以执行其它的操作。7)在网页中合适的位置插入按钮或者其它 HTML 元素,点击时调用控件的SaveToURL 方法将用户对 NTKO OFFICE 文档控件中文档的
11、修改保存到 web 服务器:var retStr = ntkoobj.SaveToURL();/此时,retStr 就是服务器返回的数据,您可以用任何方式显示。4. 导出 word 文档编程介绍导出 word 文档主要原理是通过 word 标签来定位值的存放,数据可从页面传或后台取出,在导出 word 之前,要自定义文档模板要先定义书签,具体定义书签如下图:空军雷达学院 文档整理 毒药 第 8 / 12 页核心代码说明:/准备数据function CopyTextToBookMark(inputname,BookMarkName)tryvar inputValue=“;var j,elObj,
12、optionItem;var elObj = document.all.item(inputname); if (!elObj)/alert(inputname);alert(“HTML 页面没有该元素“);return;elseinputValue = elObj.value;var bkmkObj = document.all.TANGER_OCX.ActiveDocument.BookMarks(BookMarkName);空军雷达学院 文档整理 毒药 第 10 / 12 页if(!bkmkObj)alert(“Word 模板中不存在名称为: “+BookMarkName+“的书签!“)
13、;return;var saverange = bkmkObj.Rangeif(inputValue=-3842)saverange.InsertSymbol(-3842, “Wingdings“, true);elsesaverange.Text = inputValue;document.all.TANGER_OCX.ActiveDocument.Bookmarks.Add(BookMarkName,saverange);catch(err)function transmit()var inputarray=new Array(caseid,orgname,applyUser,email,
14、phone,expectDate,applyDate,priority,urgent,deviceName,deviceModel,deviceNumber,qualification,use,inbudget,estimatedCost);var fieldarray=new Array(caseid,orgname,applyUser,email,phone,expectDate,applyDate,priority,urgent,deviceName,deviceModel,deviceNumber,qualification,use,inbudget,estimatedCost);fo
15、r(var i=0;i/载入控件对象);transmit();“ /OfficeControl.cab#version=3,0,0,5“ width=“100%“ height=“735“5. 其它说明: 若 word 文档保存为 pdf 功能不能使用,请先关闭所有应用程序,到这里下载安 装 pdf 虚拟打印机pdfcreator-0_9_5_setup.exe. 示例程序各文件夹说明:downLoadedFiles 用于存放文档控件的 cab 包和安全签名印章系统安装程序.secSignFile 存放电子印章系统使用的印章文件tempFile 上传所需的临时文件文件夹templateFile
16、 放置文档模板的文件夹uploadAttachFile 存放上传附件的文件夹uploadHtmlFile office 文档保存为 html 格式到服务器,存放 html 文件的文件夹空军雷达学院 文档整理 毒药 第 12 / 12 页uploadOfficeFile 保存 office 文档的文件夹uploadPdfFile 保存 pdf 文件的文件夹注意:在运行示例程序时要在 FilePathInfo.jsp 中设置 tempFile(临时文件目录), uploadAttachFile(文档附件目录) ,uploadHtmlFile(html 文件目录), uploadOfficeFile(文档目录),secSignFile(印章文件目录)文件夹的服务器绝对磁盘路径.