我用cdo的方法,从html文件中提取了部分网页内容(包括图片)生成mht文件,但是图片没有固化到mht文件中,就是说,当我把源网页移走之后,图片就不能正常显示了。也就是说仍然依附于源网的页图片路径。请问这是怎么回事??
谢谢!!!!!
谢谢!!!!!
解决方案 »
- 用C#将文本中存放一行一行的用户名转化成Encoding形式存放到另一个文本里
- 这些代码看不懂,是一个时钟的计算时针分针秒针,帮我解释一下,谢谢
- rdlc报表数据源为业务对象怎么绑定?
- C# winform查看设计器,会报错,未将对象引用设置到对象的实例,但运行的时界面能出来,而且没问题,请教高手,为什么呢?急!急!
- 请问 如何在cs文件中弹出对话框 然后根据用户选择 执行不同的数据库操作?
- 有没有讲c# 在内存的实现的书
- 正则表达式
- 如何连接orcale9i数据库?
- 帮我:如何将一个表中所有数据添加到另一个表中?
- 求一个月内每一天的数据最大值
- C#多线程访问时如何才能把文件锁定,避免同时访问?
- 求一段c#读写appconfig配置文件代码。
另外,楼主,能把你的CDO的dll 给我发一份吗?
我保存远程的没问题
本地没IIS没法测试
WebRequest wreq1 = WebRequest.Create(_url);//_url是字符串,代表要得到的网页。
WebResponse wres1 = wreq1.GetResponse();
Stream stream1 = wres1.GetResponseStream();//这里得到的流是网页内容
StreamReader objReader1 = new StreamReader(stream1); string Line = "";
Line = objReader1.ReadToEnd();
Line = Line.Replace("zhuti", temstring2);
Line = Line.Replace("<td>Author:zuozhe</td>", "<td>Author:"+temstring3 +"</td>");
Line = Line.Replace("quanwen", concatstring1); StreamWriter sw1 = new StreamWriter(@"E:\11\bb.htm", false);
sw1.WriteLine(Line); objReader1.Close();
sw1.Close();
CDO.Message msg = new CDO.MessageClass();
CDO.Configuration cfg = new CDO.ConfigurationClass(); msg.Configuration = cfg;
try
{
msg.CreateMHTMLBody("file://" + @"E:\11\bb.htm", CDO.CdoMHTMLFlags.cdoSuppressNone, " ", " "); msg.GetStream().SaveToFile(arryhtm_no_pdf[i].ToString() + ".mht", ADODB.SaveOptionsEnum.adSaveCreateOverWrite); }
catch (Exception e1)
{
MessageBox.Show(e1.Message);
}
如果HTML中的图片是绝对地址就没问题
但是如果是相对地址就不行
所以你可以先解析下HTML
把图片解析成绝对地址
<head></head>
<body>
<table>
<tbody>
<tr>
<td><img src="1.jpg" /><!-- <td><img src="file://e:/1.jpg" /></td> --></td>
</tr>
</tbody>
</table>
</body>
</html>
把注释掉的内容替换下就可以了
我测试是没问题的