这是参照网上一些帖子弄出来的,有些帖子差了关键步骤,就调试不出来,本人虽然是菜鸟级别,但耐心的一步步修改,最终不小心也弄出来了,高兴啊!
这里Fckeditor用的是FCKeditor.Net_2.6.3和FCKeditor_2.6.4.1
默认的Fckeditor具有从ms word粘贴的功能, 但是当你的word文档中包含图片的时候, 就会出现无法显示图片的错误,
在这里我们要实现直接导入word文档,如果其中包含图片,则自动分离图片并上传到服务器后在fckeditor中显示.(不过word文档大的时候导入有些慢)
1. 为fckeditor添加自定义按钮
需要修改的文件:
1. fckconfig.js
2. zh-cn.js
3. fckeditorcode_ie.js(gecko的差不多)
fckconfig.js: 添加导入word文档按钮
找到这行中 FCKConfig.ToolbarSets["Default"] = [...
'Paste','PasteText','PasteWord',在PasteWord后插入'ImportWord'.
zh-cn.js
设置上述按钮的中文说明
PasteWord : "从 MS Word 粘贴",
ImportWord : "导入Word文档",
fckeditorcode_ie.js 在按钮中显示按钮
找到
case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;
这行,在其后加入
case 'ImportWord':B=new FCKToolbarButton('ImportWord',FCKLang.ImportWord,null,null,false,true,11);break; 为按钮加入功能
找到
case 'PasteWord':B=new FCKPasteWordCommand();break;
这行,在其后加入
case 'ImportWord':B=new FCKDialogCommand('ImportWord',FCKLang.ImportWord,'dialog/ImportWord/ImportWord.aspx',700,600);break;
这样就设置好了自定义按钮, 当用户点击这个按钮之后, 会自动弹出页面打开ImportWord.aspx这个文件.
剩余的就是.net的工作了, 这里提供一个文件夹下载.
http://download.csdn.net/source/1681907
里面包含Microsoft.Office.Interop.Word.dll 和ImportWord文件夹,ImportWord文件夹包含(ImportWord.aspx\ImportWord.aspx.cs).用法:在bin文件夹中引用Microsoft.Office.Interop.Word.dll .把ImportWord文件夹放入fckeditor\editor\dialog文件夹中,修改这里面的两个文件.
1\修改.cs文件:
docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
null, doc, new object[] { saveFileName, WdSaveFormat.wdFormatFilteredHTML });
2\修改.aspx文件
<script src="../common/fck_dialog_common.js" type="text/javascript"></script>
大功告成!
但自认为还是不太方便,继续研究中...