有谁知道如何在 C# 中以编程方式生成 .mht 文件,并在其中嵌入图像?问题是我已经意识到 .mht 文件能够在其中嵌入图像,并且当您更改其位置时,嵌入的图像会随整个文件(mht)一起移动。而且这个文件可以在不同的浏览器上查看,包括IE 6。
有人告诉我尝试 Data Url Scheme 技术。但它无法工作,因为它不受其他浏览器的支持。例如 IE 6。
这是可能的,并且肯定是由其他人完成的 - 相关材料和库/源代码:
在 Windows 环境中,您可以通过CDO.Message COM 组件直接执行此操作,该组件公开了IMessage 接口
我不知道在 C# 中导入 COM 对象的详细信息,所以我将给您一个类似 C 语法的快速示例:
IMsgObj = CreateObject("CDO.Message") // create the object
IMsgObj.CreateMHTMLBody("http://www.example.com/") // convert the URL to MHTML
IMsgObj.GetStream().SaveToFile("output.mht") // save it to a file
CDO.Message 组件的 CLSID 是 {CD000001-8B95-11D1-82DB-00C04FB1625D}
但请记住,该组件用于生成电子邮件消息(.eml 文件扩展名而不是 .mht),这意味着不包含 JavaScript 文件。否则它们大致相等。
MSDN 有一篇很棒的文章(2011 年 6 月)关于如何使用 CDO 和 System.Net.Mail 创建 MHT 文件。完整包含 C# 源代码。我会在 VB.Net 或 Google Code 版本之上使用它。