ntko office在线编辑控件问题记录
ntko office在线预览插件 http://www.ntko.com/
问题:火狐或谷歌下保存报【没有打开的文档】错误,ie正常
原因:火狐、谷歌、ie的各方法执行文字不同,ie嵌在页面,而火狐和谷歌在控件js回调函数中添加
解决方法:
ie在页面直接添加以下代码
<script language="javascript" type="text/javascript" for="TANGER_OCX" event="OnDocumentOpened(TANGER_OCX_str,TANGER_OCX_obj)">
TANGER_OCX_OnDocumentOpened(TANGER_OCX_str, TANGER_OCX_obj);
</script>
火狐和谷歌需要在控件js ntkoofficecontrol.js 中 if (browser == "firefox")下 ForOndocumentopened="OnComplete3" 中的回调函数OnComplete3方法中添加方法
document.write('<object id="TANGER_OCX" type="application/ntko-plug" codebase="/module/ntko/ofctnewclsid.cab#version=5,0,3,0" width="100%" height="750" ForOndocumentopened="OnComplete3" ForOnSaveToURL="OnSaveToURL" ');
问题:在线预览pdf文件,报【文件存取错误】
原因:未添加pdf文件支持
解决方法:需要添加pdf文件支持,在文件打开,控件加载方法中添加以下代码:(需要有ntkooledocall.cab控件支持,下面的4.0.0.0对应ntkooledocall.cab包中的ntkooledocall.inf文件中的FileVersion=4,0,0,5)
TANGER_OCX_OBJ.AddDocTypePlugin(".pdf", "PDF.NtkoDocument", "4.0.0.5", "/module/ntko/ntkooledocall.cab", 51, true);
问题:已添加pdf文件支持,但在ie浏览器下预览时仍然报【文件存取错误】或【文档加载失败】
原因:后台输出的二进制流方法错误
解决方法:建议按照以下方式输出二进制流暂未发现问题 需要注意的位置为(如果还有问题,请自行网上查找各文件输出二进制流的方法,注:pdf和word等二进制流不同)
response.AddHeader("content-type", "application/octet-stream");//指定返回二进制流的类型
response.AddHeader("Content-Disposition", "inline; filename=" + fileName);
public void OpenServerFile(string strFilePath,string fileName)
{
//读取文档二进制,注意返回的二进制流要是标准性,否则前台可能无法正常打开文档
//此处简单以打开服务器磁盘上的Word文档为例,实际应用中可从数据库读取、标准Office文档均可 FileInfo finfo = new FileInfo(strFilePath);
FileStream fs = finfo.OpenRead(); HttpResponse response = System.Web.HttpContext.Current.Response;
HttpRequest request = System.Web.HttpContext.Current.Request; response.AddHeader("content-type", "application/octet-stream");//指定返回二进制流的类型
response.AddHeader("Content-Disposition", "inline; filename=" + fileName); //若浏览器端返回的显示乱码,则需要考虑编码的选择问题,一般情况下使用UTF-8 byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, , bytes.Length);
fs.Close();
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
问题:在火狐和谷歌浏览器下保存文件时 控件js的回调函数中的html返回值为error,且查看浏览器请求返回代码为500,没有进入后台
原因:在放置控件的form表单上添加了 runat="server" 标记,此标记会对控件客户端提交表单照成影响
解决方法:去除form表单上的 runat="server" 标记
问题:在控件加载时有时候加载成功有时候提示【文档加载失败】
原因:控件没有初始化完毕就执行了加载文档方法
解决方法:在使用 BeginOpenFromURL 等打开文档方法前需要添加延迟,等待控件加载完毕。如以下代码:
//延迟加载,需等待控件加载完毕
setTimeout(function () {
TANGER_OCX_OBJ.BeginOpenFromURL(URL, true, false);
}, 1000);
ntko office在线编辑控件问题记录的更多相关文章
- NTKO OFFICE文档控件
目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便. ...
- 基于MVC4+EasyUI的Web开发框架经验总结(5)--使用HTML编辑控件CKEditor和CKFinder
Web开发上有很多HTML的编辑控件,如CKEditor.kindeditor等等,很多都做的很好,本文主要介绍在MVC界面里面,CKEditor的配置和使用.CKEditor的前身是FCKEdito ...
- C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面
个人理解,开发应用程序的目的,不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景也最为复杂,包括但不限于:表格记录查询.报表查询.导出文件查询等等 ...
- Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面 z
http://www.cnblogs.com/zuowj/p/4504130.html 不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景 也最为 ...
- 编辑控件CKEditor和CKFinder
-使用HTML编辑控件CKEditor和CKFinder Web开发上有很多HTML的编辑控件,如CKEditor.kindeditor等等,很多都做的很好,本文主要介绍在MVC界面里面,CKEdit ...
- 浅谈基于WOPI协议实现跨浏览器的Office在线编辑解决方案
如今,基于Web版的Office 在线预览与编辑功能已成为一种趋势,而关于该技术的实现却成为了国内大部份公司的技术挑战,挑战主要存在于两方面: 其一:目前国内乃至微软本身,还没有相对较为完善的解决方案 ...
- 分享一个Winform里面的HTML编辑控件Zeta HTML Edit Control,汉化附源码
我们知道,Web开发上有很多HTML的编辑控件,如FCKEditor.CKEditor.kindeditor等等,很多都做的很好,而虽然Winform里面有WebBrowser控件,但是默认这个控件是 ...
- [转载]ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件
作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...
- IP编辑控件(因为封装的是系统自带控件,所以也使用了CreateSubClass,不过为啥要封装CN_COMMAND和CN_NOTIFY不是很明白)
最近需要用一个IP输入控件,网上找了几个,都不符合效果,有些还有一些奇怪的Bug.后来发现原来系统已经提供了IP地址编辑控件,只是系统提供的控件不能设置只读效果.网上找了下资料,封装了一下,自己迂回一 ...
随机推荐
- tp5 中 model 的修改器
修改器可以在数据赋值的时候自动进行转换处理 class User extends Model { public function setNameAttr($value){ return strtolo ...
- winserver 08 64位安装sql05 64位提示asp版本注册
将打开 安装IIS 6.0的就可以了,然后重启下
- Servlet引擎Jetty之入门1
Jetty与tomcat一样,HttpWeb容器,支持实现Servlet规范. 详细介绍参考:https://www.ibm.com/developerworks/cn/java/j-lo-jetty ...
- js厘米与英寸尺码转换
<style type="text/css"> #txt_cm1, #txt_inch1, #txt_inch2, #txt_cm2 { width: 63px; he ...
- 大数据系列-java用官方JDBC连接greenplum数据库
这个其实非常简单,之所以要写此文是因为当前网上搜索到的文章都是使用PostgreSQL的驱动,没有找到使用greenplum官方驱动的案例,两者有什么区别呢? 一开始我也使用的是PostgreSQL的 ...
- 如何用 SQL Tuning Advisor (STA) 优化SQL语句
在Oracle10g之前,优化SQL是个比较费力的技术活,不停的分析执行计划,加hint,分析统计信息等等.在10g中,Oracle推出了自己的SQL优化辅助工具: SQL优化器(SQL Tuning ...
- C# DM5 32位加密
using System.Security.Cryptography;using System.Text; public static string StringToMD5Hash(string in ...
- BZOJ 1305: [CQOI2009]dance跳舞 二分+最大流
1305: [CQOI2009]dance跳舞 Description 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲 ...
- Makefile笔记之一 ------ 变量的引用及赋值
1.变量的引用方式: "$(变量名)"或者"¥{变量名}" 例如: ${Objs}就是取变量Objs的值 注意: 当变量名为单字符是可以采用:"$a& ...
- 尽量用goto代替尾递归
void PrintList(List L) { if(L!=Null) { PrintElement(L->Element); PrintLisr(L->Next); } } 所谓尾递归 ...