webbrowser控件内容直接保存为MHT文件

vansoft 2010-03-30 11:29:58
webbrowser在编辑状态下,编辑了图文混排的内容。
要求直接将此图文混排内容保存为mht文件,不需要弹出保存对话框。

以上为网上的方法:
引用ADO 和CDO
Dim message As New CDO.MessageClass()
message.CreateMHTMLBody("http://www.iodid.com",CDO.CdoMHTMLFlags.cdoSuppressNone,"","")
Dim Outstream As ADODB.Stream
Outstream = message.GetStream
Outstream.SaveToFile("c:\test.mht", ADODB.SaveOptionsEnum.adSaveCreateOverWrite)
====================================================================================

这个显然不符合要求,CreateMHTMLBody方法的参数为一个网址。
另外,请别回答用webrowser.document.execCommand方法。

根据我所搜索到的资料,貌似需要通过IPersist接口。
GOOGLE到的代码全是DELPHI的。

另外,需要webbrowser从字符串(MHT网页内容的字符串)中加载并显示内容。
也是需要通过流来实现。
...全文
486 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2010-03-31
  • 打赏
  • 举报
回复
我这里测试无论是本地图片还是网络图片,都包含在 mht 中。
是否网页中有阻止保存的脚本?
bcrun 2010-03-30
  • 打赏
  • 举报
回复
看楼主的意思,你要保存的是静态文档,这个相对应该较容易吧,不过有些链接到的文档,如在css元素中外接的css文件等,可能要仔细检查一下,别漏保存了. 自己生成mht文件,前一阵我看到这篇文章就有探讨:

http://topic.csdn.net/u/20100127/14/A961DF9A-34A1-44F1-9F9A-C10A4D168736.html
“如何将16进制码流在html中显示为图片”兼容多个浏览器的方案。
lyserver 2010-03-30
  • 打赏
  • 举报
回复
自已编码实现吧,mht在EML家族中,格式算简单的。
无·法 2010-03-30
  • 打赏
  • 举报
回复
uup
贝隆 2010-03-30
  • 打赏
  • 举报
回复
帮楼主:UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
jhone99 2010-03-30
  • 打赏
  • 举报
回复
bcrun 2010-03-30
  • 打赏
  • 举报
回复
看来经楼主严格测试,这个方案还是不能完全保存啊.那考虑下自己一个个的转换保存吧.
vansoft 2010-03-30
  • 打赏
  • 举报
回复
Tiger_Zhao

网上引用ADO 和CDO的代码
保存网络上的网页没问题
保存本地的HTML网页时,图片没有被编码,还是链接.
就算我把HTML网页放到本地的IIS上,也是如此.
Tiger_Zhao 2010-03-30
  • 打赏
  • 举报
回复
IE 浏览 mht 时要解成一个个文件都不嫌麻烦,用一下临时文件又有什么麻烦的。
vansoft 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tiger_zhao 的回复:]
内容略
[/Quote]
做成二步,的确可以,大侠不嫌麻烦吗?

[Quote=引用 8 楼 chinaboyzyq 的回复:]
内容略
[/Quote]
这个有对话框,更不需要。
chinaboyzyq 2010-03-30
  • 打赏
  • 举报
回复
WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER
king06 2010-03-30
  • 打赏
  • 举报
回复
up~~
Tiger_Zhao 2010-03-30
  • 打赏
  • 举报
回复
'http://www.mvps.org/emorcillo/en/code/vb6/wbsave.shtml
Dim oPF As IPersistFile
Set oPF = WebBrowser1.Document
oPF.Save "TheFileNameHere.htm", False

'http://www.mvps.org/emorcillo/download/vb6/tl_ole.zip


先用上面的方法存成本地 htm,再用 ADO+CDO 的方式存为 mht。
嗷嗷叫的老马 2010-03-30
  • 打赏
  • 举报
回复
帮顶....

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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