NTKO编辑文档.docx_第1页
NTKO编辑文档.docx_第2页
NTKO编辑文档.docx_第3页
NTKO编辑文档.docx_第4页
NTKO编辑文档.docx_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NTKO编辑文档NTKO 编辑文档自编目录:一、 NTKO OFFICE文档控件功能及简介:21: NTKO OFFICE文档控件简介22: NTKO OFFICE文档控件功能2二、 项目中出现的要求31: 上传文件和报告信息不得大于5M32: Word编辑菜单中的问题33:打印控制(可控制前台或者后台打印)54:痕迹保留控制相关65:文档控制76:值域交换9三、 原理介绍12四、 控件在IE或其他浏览器中出现的问题与解决方法131:NTKO OFFICE文档控件为何不能自动装载132:文档控件打开Word文档时提示错误:-2147221163163:NTKO文档控在IE7/IE8环境下部分功能不能正常使用16五、 控件相关属性参考181: 相关界面属性182: 网络协议相关属性183: 行为控制相关属性18一、 NTKO OFFICE文档控件简介:1: NTKO OFFICE文档控件简介:NTKO OFFICE文档控件拥有ActiveX控件。使用NTKO Office文档控件,能够在浏览器窗口中直接编辑Word, Excel等Office文档并保存到Web服务器。控件采用标准HTTP上传协议,支持任意后台Web服务器(iis, domino, webaphere, apache等),任意后台操作系统(win2k, win2003, linux, unix等),以及任意后台编程语言(asp, , jsp, php, , c#等)和任意web应用服务器体系结构(j2ee, .net等)。2:NTKO OFFICE文档控件功能:NTKO附件管理控件,能够一次上传多个文件或一次扫描多页文件上传至WEB服务器,避免了传统WEB系统每次只能选择一个文件上传的低效率操作。并支持在浏览器中启动原始文件对应的应用程序对文档进行编辑、阅读。控件支持如CAD文件、图像文件、OFFICE文件、文本文件等任何文件的阅读或编辑,并支持自动识别修改过的文档,提示保存回服务器。免去了下载修改上传的复杂操作过程。实现稳定的在线编辑和统一管理。支持拖放、多种视图模式、智能提交等多种特性。支持多种后台web服务器和开发语言支持DOMINO,IIS,WebLogic,Apache等多种后台web服务器和ASP,JSP,C#,VB.NET,PHP等多种后台开发语言。在任何后台web服务器都无需后台安装特别的组件或者软件与DOMINO服务器无缝集成无需后台组件,和DOMINO服务器可无缝集成。比INOTES使用更加方便,开发更加快捷支持智能提交控件使用我们独创的智能提交技术,支持将附件文件和开发者指定的FORM中的数据一次性上传到服务器多线程上传下载,性能更高控件完全采用多线程方式上传下载,可以更好的改善用户体验,达到更高性能支持UTF-8网页编码通过IsUseUTF8Data属性,可以支持UTF-8编码网页的智能提交支持网络缓冲大小自定义自适应的网络传输速度,并且在特殊网络中允许用户自定义网络传输缓冲的大小支持HTTP协议,HTTPS OVER SSL协议对HTTPS协议的支持使得可以创建更加安全的应用。并且自动支持Session Cookie。使用当前页面的Session Cookie和服务器进行交互支持鼠标拖放二、 项目中出现的要求:1:上传文件和报告信息不得大于5M方法:支持过滤文件大小,文件总数量,以及文件类型通过控件的BeforeFileAdded事件,用户可以限定允许添加到控件的文件类型,大小,以及数量。2:控件Word编辑菜单中的问题:(1)是否隐藏控件菜单:项目中要求在乎用NKTO控件去调用Word文档时要隐藏Word菜单,即: 以方便工作人员进行工作:对于隐藏菜单,我们可以用控件界面控制:以下Javasctipt函数使用控件属性来控制控件是否显示标题栏,菜单栏,状态栏,工具栏。function ShowTitleBar(bShow)TANGER_OCX_OBJ.Titlebar = bShow;function ShowMenubar(bShow)TANGER_OCX_OBJ.Menubar = bShow;function ShowStatusbar(bShow)TANGER_OCX_OBJ. Statusbar = bShow;function ShowToolbars(bShow)TANGER_OCX_OBJ. Toolbars = bShow;(2)是否允许用户从控件中拷贝数据:可以用控件功能控制,以下函数可用于允许或禁止用户从控件拷贝数据。function TANGER_OCX_SetNoCopy(boolvalue)TANGER_OCX_OBJ.IsNoCopy = boolvalue;以下函数可用于工具菜单项控制。(隐藏工具菜单项和审阅工具栏及右键菜单可用于强制用户在痕迹保留状态下工作)function ShowToolMenu(bShow)TANGER_OCX_OBJ.IsShowToolMenu = bShow;(3)是否允许用户新建菜单:可以用控件文件菜单控制以下函数用于对控件文件菜单的控制。/允许或禁止文件新建菜单function TANGER_OCX_EnableFileNewMenu(boolvalue)TANGER_OCX_OBJ.FileNew = boolvalue;/允许或禁止文件打开菜单function TANGER_OCX_EnableFileOpenMenu(boolvalue)TANGER_OCX_OBJ. FileOpen = boolvalue;/允许或禁止文件关闭菜单function TANGER_OCX_EnableFileCloseMenu(boolvalue)TANGER_OCX_OBJ.FileClose = boolvalue;/允许或禁止文件保存菜单function TANGER_OCX_EnableFileSaveMenu(boolvalue)TANGER_OCX_OBJ.FileSave = boolvalue;/允许或禁止文件另存为菜单function TANGER_OCX_EnableFileSaveAsMenu(boolvalue)TANGER_OCX_OBJ.FileSaveAs = boolvalue;/允许或禁止文件打印菜单function TANGER_OCX_EnableFilePrintMenu(boolvalue)TANGER_OCX_OBJ.FilePrint = boolvalue;/允许或禁止文件打印预览菜单function TANGER_OCX_EnableFilePrintPreviewMenu(boolvalue)TANGER_OCX_OBJ. FilePrintPreview = boolvalue;(4)是否创建,从本地打开和保存文档:创建新Word文档:TANGER_OCX_OBJ. CreateNew(“Word.Document”);创建新Excel电子表格:TANGER_OCX_OBJ. CreateNew(“Excel.Sheet”);提示用户选择本地文件打开:TANGER_OCX_OBJ. ShowDialog (1);提示用户选择本地文件保存:TANGER_OCX_OBJ. ShowDialog (3);不提示用户,直接打开指定的本地文件:TANGER_OCX_OBJ. OpenLocalFile (c:test.doc);不提示用户,直接保存为指定的本地文件:TANGER_OCX_OBJ. SaveToLocal (c:test.doc,false);/第二个参数为true将覆盖已存在的文件注:项目主要研究Word文档3:打印控制(可控制前台或者后台打印)以下函数用于设置页面布局:function TANGER_OCX_ChgLayout() tryTANGER_OCX_OBJ.showdialog(5); /设置页面布局catch(err)alert(错误: + err.number + : + err.description);finally以下Javascript函数可以用来打印当前文档。isBackground参数可以控制是前台打印还是后台打印。对于比较大的文档,如果确认必须等待用户打印完毕,可以调用TANGER_OCX_PrintDoc(false);函数来进行前台打印。function TANGER_OCX_PrintDoc(isBackground)var oldOption;tryvar objOptions = TANGER_OCX_OBJ.ActiveDocument.Application.Options;oldOption = objOptions.PrintBackground;objOptions.PrintBackground = isBackground;catch(err);TANGER_OCX_OBJ.printout(true);tryvar objOptions = TANGER_OCX_OBJ.ActiveDocument.Application.Options;objOptions.PrintBackground = oldOption;catch(err);4:痕迹保留控制相关设置当前Office的用户名(痕迹的用户名)/设置用户名function TANGER_OCX_SetDocUser(cuser)with(TANGER_OCX_OBJ.ActiveDocument.Application)UserName = cuser;进入或退出强制痕迹保留状态,调用该函数下面定义的两个函数。一般可直接调用本函数function TANGER_OCX_SetMarkModify(boolvalue)TANGER_OCX_SetReviewMode(boolvalue);TANGER_OCX_EnableReviewBar(!boolvalue);允许或禁止显示修订工具栏和工具菜单(保护修订,用户不能更改当前修订状态):function TANGER_OCX_EnableReviewBar(boolvalue)TANGER_OCX_OBJ.ActiveDocument.CommandBars(Reviewing).Enabled = boolvalue;TANGER_OCX_OBJ.ActiveDocument.CommandBars(Track Changes).Enabled = boolvalue;TANGER_OCX_OBJ.IsShowToolMenu = boolvalue;/关闭或打开工具菜单打开或者关闭修订模式:function TANGER_OCX_SetReviewMode(boolvalue)TANGER_OCX_OBJ.ActiveDocument.TrackRevisions = boolvalue;显示/不显示修订文字function TANGER_OCX_ShowRevisions(boolvalue)TANGER_OCX_OBJ.ActiveDocument.ShowRevisions = boolvalue;打印/不打印修订文字function TANGER_OCX_PrintRevisions(boolvalue)TANGER_OCX_OBJ.ActiveDocument.PrintRevisions = boolvalue;接受所有修订function TANGER_OCX_AcceptAllRevisions()TANGER_OCX_OBJ.ActiveDocument.AcceptAllRevisions();拒绝所有修订function TANGER_OCX_RejectAllRevisions()TANGER_OCX_OBJ.ActiveDocument. RejectAllRevisions ();5:文档控制切换文档的只读状态(文档保护状态)function TANGER_OCX_SetReadOnly(boolvalue)var i;tryif (boolvalue) TANGER_OCX_OBJ.IsShowToolMenu = false;with(TANGER_OCX_OBJ.ActiveDocument)if (TANGER_OCX_OBJ.DocType = 1) /wordif ( (ProtectionType != -1) & !boolvalue)Unprotect();if ( (ProtectionType = -1) & boolvalue)Protect(2,true,);else if(TANGER_OCX_OBJ.DocType = 2)/excelfor(i=1;i=Application.Sheets.Count;i+)if(boolvalue)Application.Sheets(i).Protect(,true,true,true);elseApplication.Sheets(i).Unprotect();if(boolvalue)Application.ActiveWorkbook.Protect(,true);elseApplication.ActiveWorkbook.Unprotect();catch(err)/alert(错误: + err.number + : + err.description);finally6:值域交换如下Javascript函数可将html form的域值拷贝到Word文档的标签中function CopyTextToBookMark(inputname,BookMarkName)tryvar inputValue=;var j,elObj,optionItem;var elObj = document.forms0.elements(inputname); if (!elObj)alert(HTML的FORM中没有此输入域:+ inputname);return;switch(elObj.type)case select-one:inputValue = elObj.optionselObj.selectedIndex.text;break;case select-multiple:var isFirst = true;for(j=0;jelObj.options.length;j+)optionItem = elObj.optionsj;if (optionItem.selected)if(isFirst)inputValue = optionItem.text;isFirst = false;elseinputValue += + optionItem.text;break;default: / text,Areatext,selecte-one,password,submit,etc.inputValue = elObj.value;break;/do copy/DEBUG/alert(inputname+=+inputValue+ Bookmarkname=+BookMarkName);var bkmkObj = TANGER_OCX_OBJ.ActiveDocument.BookMarks(BookMarkName);if(!bkmkObj)alert(Word 模板中不存在名称为:+BookMarkName+的书签!);var saverange = bkmkObj.Rangesaverange.Text = inputValue;TANGER_OCX_OBJ.ActiveDocument.Bookmarks.Add(BookMarkName,saverange);catch(err)finally将html form的域值拷贝到Word文档的MailMerge域中function CopyTextToField(inputname,FieldName)tryvar inputValue=;var j,elObj,optionItem;var elObj = document.forms0.elements(inputname); if (!elObj)alert(HTML的FORM中没有此输入域:+ inputname);return;switch(elObj.type)case select-one:inputValue = elObj.optionselObj.selectedIndex.text;break;case select-multiple:var isFirst = true;for(j=0;jelObj.options.length;j+)optionItem = elObj.optionsj;if (optionItem.selected)if(isFirst)inputValue = optionItem.text;isFirst = false;elseinputValue += + optionItem.text;break;default: / text,Areatext,selecte-one,password,submit,etc.inputValue = elObj.value;break;var Fields = TANGER_OCX_OBJ.ActiveDocument.MailMerge.Fields;for(var iField=1; iField= 0)Fields(iField).Select();TANGER_OCX_OBJ.ActiveDocument.Application.Selection.Text = inputValue;catch(err)/alert(err.number + : + err.description);finally从Word文档中读出内容,并传递给inputname。function ReadFromDoc(BookMarkName,inputname)var inputValue=;var elObj = document.forms0.elements(inputname); if (!elObj)alert(HTML的FORM中没有此输入域:+ inputname);return;elObj.value = TANGER_OCX_OBJ.ActiveDocument.Content.Text;从Word文档中读出指定书签的内容,并传递给inputname。function ReadBookMarkFromDoc(inputname)var inputValue=;var elObj = document.forms0.elements(inputname); if (!elObj)alert(HTML的FORM中没有此输入域:+ inputname);return;var bkmkObj = TANGER_OCX_OBJ.ActiveDocument.BookMarks(BookMarkName);if(!bkmkObj)alert(Word 模板中不存在名称为:+BookMarkName+的书签!);elObj.value = bkmkObj.Range.Text;三、 原理介绍注意,在本文档及以下部分,假设控件对象为TANGER_OCX_OBJ。该对象可以在HTML页面的onload事件中通过TANGER_OCX_OBJ=document.all(控件ID);来赋值。NTKO OFFICE文档控件的ActiveDocument属性,如果是打开了Word文档,就是一个Word的Document对象。如果是打开了Excel电子表,就是一个Excel的WorkBook对象。这两个对象的详细信息分别在Word和Excel的联机帮助的与编程信息有关的部分可以查阅到。(需要完全安装Word和Excel才会有编程帮助信息)。NTKO OFFICE文档控件和其中打开的文档对象的关系如下:NTKO Office文档控件Word,Excel等文档对象OLE文档容器接口ActiveDocument属性因此,可以通过Javascript对ActiveDocument属性的访问,来达到控制控件内部的Word,Excel对象的目的。比如,以下代码将在Word的当前光标插入文字:TANGER_OCX_OBJ.ActiveDocument.Application.Selection.TypeText(test by tanger);比如:以下代码设置控件中的第一个电子表格的b2单元格的值:TANGER_OCX_OBJ.ActiveDocument.Sheets(1).Range(B2).Value=test by tanger;注意:在没有打开文档之前,ActiveDoument属性是空值。比如如下函数:function testdoc()if (typeof(TANGER_OCX_OBJ.ActiveDocument) = undefined)alert(undefined);else if (TANGER_OCX_OBJ.ActiveDocument = null)alert(null);elsealert(ok);注意:在控件中没有打开文档时,将返回null。因此,要对ActiveDoument属性进行操作,请确认您已经打开了文档。或者在操作之前判断其值是否为空以防止出现错误。四、 控件在IE或其他浏览器中出现的问题与解决方法1:NTKO OFFICE文档控件为何不能自动装载?l 问题表现:当访问引用控件的网页时,NTKO OFFICE文档控件窗口不会出现,导致相关的引用控件的Javacript语句无法运行。网页上出现类似“无法加载控件,请检查浏览器安全设定”的错误提示,并且可能有JavaScript无法找到对象的错误提示。l 此问题和控件本身无关。为了解决NTKO OFFICE文档控件不能自动装载的问题,首先来看看浏览器装载对象涉及到的步骤。(暂时不考虑如防病毒软件或者其他过滤工具的影响)对于HTML代码中引用控件的如下代码:其中:1) id=TANGER_OCX标识控件的JavaScript编程标识,通过document.all(TANGER_OCX)即可得到对控件对象的引用。2)clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404标识NTKO OFFICE文档控件的唯一标识。浏览器通过这个clsid来判断访问网页的客户机是否已经安装控件。3)在codebase=/path/to/OfficeControl.cab#version=4,0,0,5 中,前面的/path/to/OfficeControl.cab部分,标识控件自动安装文件在服务器上相对当前网页的URL位置,而#version=4,0,0,5部分标识该网页需要的控件版本号。浏览器装载控件的流程大致如下:l 根据以上流程,当出现以下几种情况,NTKO OFFICE文档控件将不能自动装载:1)本地Internet选项中的安全设定,在当前区域禁止下载已签名的ActiveX控件; 2)引用控件的网页中,object 标记中的codebase属性指定不正确,导致浏览器无法下载OfficeControl.cab文件; 3)服务器上的OfficeControl.cab被破坏,失去正确的签名,或者使用了不正确的版本; 4)虽然服务器上的OfficeControl.cab正确,但是浏览器下载的有问题。这个可能会因为某些WEB服务器的mime的错误配置引起,导致服务器将OfficeControl.cab不以二进制文件的形式发送给浏览器; 5)本地Internet选项中的安全设定,在当前区域不允许运行ActiveX控件和插件; 6)还有可能是由于微软的补丁引起,或者其他防病毒软件或者过滤软件阻止了控件安装;l 可以按照如下次序检查并排除问题: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_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX 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:文档控件打开Word文档时提示错误:-2147221163l 问题表现文档控件打开word文档时提示错误:-2147221163解决方案这个错误的详细信息是接口没有注册。跟控件本身无关。1).可以打开windows的“写字板”应用程序,选择插入,对象,选择word文档对象。如果这个也是出错,可以确认是office安装问题,或者是因为ole32.dll没有注册。2).可以尝试在命令行运行 Regsvr32 ole32.dll,然后试试。如果还不行,请彻底卸载office重新完整安装。3:NTKO文档控在IE7/IE8环境下部分功能不能正常使用在最新的操作系统VISTA中内置的IE7浏览器(非IE7独立安装程序)增加了IE保护模式的安全保护机制。IE保护模式可能是Windows Vista里最严厉的安全措施。运行在保护模式下的IE浏览器,IE进程的完整性级别是Low最低,没权限对WORD文档进行一些本地操作。当我们用IE7浏览一个网站的时候在状态栏看见如图4所示,IE默认是打开保护模式。l 解决办法: 1)全部禁用IE7的保护模式(不推荐,会降低整个系统的安全性) 在Internet区域取消选择“启用保护模式”。确定以后重新启动IE7浏览器。2)将网站添加进可信站点。(推荐) 因为在可信区域里,IE浏览器默认运行在非保护模式,也就是运行在普通的(UAC)用户账户控制安全级别。在安全标签选择“可信站点”,如图6选择站点,如图然后点击添加,并关闭确定。重启IE7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论