欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[ASP.NET]NTKO插件使用常见问题

程序员文章站 2022-07-07 22:40:25
一、环境要求 NTKO OFFICE文档控件能够在IE、谷歌Chrome、Firefox等浏览器中直接编辑MS Office、WPS、金山电子表、永中Office等文档并保存到WEB服务器。(标准版对IE浏览器的兼容进行了验证,其他浏览器并未验证) 使用Ntkooffice套打,对配置环境要求较高, ......

一、环境要求

NTKO OFFICE文档控件能够在IE、谷歌Chrome、Firefox等浏览器中直接编辑MS Office、WPS、金山电子表、永中Office等文档并保存到WEB服务器。(标准版对IE浏览器的兼容进行了验证,其他浏览器并未验证)

使用Ntkooffice套打,对配置环境要求较高,以MS office为例,需要安装完整版Office。

备注:文档控件是ActiveX控件,通过浏览器操作本地的office,所以说系统用户的权限必须管理员身份,这样控件才能正常的加载;还有就是访问的系统里面有文档控件,必须将这个系统加入到IE的可信任站点中去;

加入可信站点如图:IE工具栏-Internet选项

 [ASP.NET]NTKO插件使用常见问题

这保护模式不要启用;

 [ASP.NET]NTKO插件使用常见问题

https验证取消,然后点击添加就行了;

 [ASP.NET]NTKO插件使用常见问题

如果在使用文档控件,在office文档和表单中的附件一并保存的时候出现失败;

检查一下IE安全设置,将“将文件上载到服务器时包含了本地目录路径” 启用 如图:

 [ASP.NET]NTKO插件使用常见问题

常见错误

2.1  问题:弹出下图“对象不支持”提示

 

解决方法:第一次运行时需要允许加载项,然后刷新后重新打开打印页面。

 [ASP.NET]NTKO插件使用常见问题

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编码格式。

保存文档回服务器时报“文件传输错误”
SaveToUrl()方法的返回值就是url指向页面的执行完后整个页面的内容.如果后台url程序有错误,保存不成功.控件就会提示"文件传输错误",并且SaveToUrl()方法的返回值中就包含了错误信息,可以通过类似下面的代码查看错误信息,并对url页面进行排错:
var resTTML = 控件对象.saveToUrl(url,..);
alert(resTTML);

2.8  问题:控件使用一段时间后突然提示"您正在运行的NTKO OFFICE文档控件是演示版本已经到期,不能继续使用。(.net版本)

解决方法:

到标准版部署包中拷贝下图的3个文件 ,覆盖项目组对应路径下的文件。

 [ASP.NET]NTKO插件使用常见问题

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  问题:页面分辨率问题

大屏显示器可能会存在页面显示不美观的问题 

[ASP.NET]NTKO插件使用常见问题

解决方法:需要使用大屏显示的项目组可以个性化调整页面。

3.2  问题:附件误删问题

假如已经打开证照并且编辑进行了保存操作,则会在框架目录下的对应文件夹下生成一个附件实例,这个时候如果误删实例,则会出现图2的错误。

EpointFrame\BigFileUpLoadStorage\2017\1\EpointFrame

图1:

 [ASP.NET]NTKO插件使用常见问题

图2:

[ASP.NET]NTKO插件使用常见问题

3.3  问题:浏览器兼容性问题

 标准版对IE及360浏览器做了兼容性验证:

兼容IE    不兼容360

 对官网宣传的谷歌Chrome、Firefox浏览器未进行验证。