------------Asp.Net如何将网页及图片一并导出到Word中?----------

yuxh81 2011-03-05 11:42:23
目前可以实现非图片的导出,如果网页中有图片到Word中就是一个红叉,请问如何解决?

以下是导出代码:

//功能实现
public static void ToWord(System.Web.UI.Control ctl)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=DocLibrary.doc");
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
HttpContext.Current.Response.ContentType = "application/ms-word";
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
//调用
Tools.ToWord(this.div1);
...全文
875 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
rtyg 2013-09-13
  • 打赏
  • 举报
回复
引用 4 楼 yuxh81 的回复:
刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!! 继续摸搜。。。
SOAOffice这个已经过时了,现在大家都在PageOffice,跨浏览器,强就一个字!
lteb2002 2013-09-08
  • 打赏
  • 举报
回复
这个功能用Java Applet也是非常好实现的,可以自动将粘贴过来的WORD中的本地图片上传到服务器。用ACTIVEX的最大问题是只支持IE,用JAVA的跨平台性能要好一些,参考实现见:http://test.reremouse.com/wordimg
chenkeyu1983 2013-06-18
  • 打赏
  • 举报
回复
注意图片的路径为问题:要改成站点服务器的绝对路径如:http://192.168.0.134:8003/image/tab_01.jpg
angel199 2012-02-13
  • 打赏
  • 举报
回复
抱歉问下,刚好遇到和您一样的情况,需要把页面内容导出到word文档中.
我想问下,在您帖子里写的 调用:Tools.ToWord(this.div);
这句是怎么用的呢?
写在前台页面按钮的OnClick中呢?
yuxh81 2011-03-23
  • 打赏
  • 举报
回复
总结:

图片不能显示是由于地址的问题(相对地址)。
在输出到页面时,将图片的相对地址改成绝对地址,如:http://...
这也就意味着用户只能在能访问服务器的情况下,图片才能显示

向用户说明采用其它方案的难度及风险,用户同意了此方案!
yuxh81 2011-03-06
  • 打赏
  • 举报
回复
刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!!

继续摸搜。。。
yuxh81 2011-03-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maco_wang 的回复:]

试下这个:
http://blog.csdn.net/Leeu/archive/2005/04/09/340735.aspx
[/Quote]

注:1、图片,你要想办法放到和该word文档相同的目录中(变通一下就可以把图片放到相同的目录下了哈)2、这是在客户端导出的,你也可以在服务器端导出,变动一下即可。3、用IE6.0,在IE的选项里启用java。

不太理解,请赐教!!
yuxh81 2011-03-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 subxli 的回复:]

第一个我用过,是很不好. 第三种可行,貌似你全选一个网页粘贴到word中是可以把图片拷过去的
[/Quote]

刚刚试了下,手动将Web页面内容选择->复制,后粘贴到Word是可以的
就是不知道代码如何完成!!
subxli 2011-03-06
  • 打赏
  • 举报
回复
第一个我用过,是很不好. 第三种可行,貌似你全选一个网页粘贴到word中是可以把图片拷过去的
yuxh81 2011-03-06
  • 打赏
  • 举报
回复
现在有三种思路:

1:调用Word自身的组件 Microsoft.Office.Interop.Word.dll
这个需要服务器安装Word程序,且需要控制Word进程,有可能会形成死进程,最终导致Web服务器崩溃

2:调用中间件(第三方),如SOAOffice
这个很好,但要收费

3:将Web页面直接输出到Word(就是1楼的代码)

能否在方案3的基础上,让图片能插入到word!

子夜__ 2011-03-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuxh81 的回复:]

刚刚发现一个东西(SOAOffice)估计可以解决我的问题,不过是付费的,郁闷!!

继续摸搜。。。
[/Quote]
http://topic.csdn.net/u/20070424/08/e907852b-df72-4585-b57d-5814a55cc76e.html
lcomplete 2011-03-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyq11 的回复:]

直接打开WORD模版,addpicture添加图片
mydoc.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture("C:\\test.jpg", ref oMissing, ref oMissing, ref oMissing);

书签绑定数据
或方法不变,使用HTML保存数据
[/Quote]

up
wuyq11 2011-03-06
  • 打赏
  • 举报
回复
直接打开WORD模版,addpicture添加图片
mydoc.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture("C:\\test.jpg", ref oMissing, ref oMissing, ref oMissing);

书签绑定数据
或方法不变,使用HTML保存数据
yuxh81 2011-03-06
  • 打赏
  • 举报
回复
一个人郁闷中。。。
叶子 2011-03-05
  • 打赏
  • 举报
回复
试下这个:
http://blog.csdn.net/Leeu/archive/2005/04/09/340735.aspx

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧