以编程方式生成.mht文件

本文关键字:mht 文件 方式生 编程 | 更新日期: 2023-09-27 18:29:50

有人知道如何用C#编程生成.mht文件吗嵌入图像?问题是我已经意识到.mht文件能够在其中嵌入图像,并且这种嵌入的图像当您更改整个文件(mht)的位置时,它会随文件一起移动。和这个文件可以在不同的浏览器上查看,包括IE 6。

我被告知要尝试数据Url方案技术。但它不能工作,因为其他浏览器不支持它。例如IE 6。

以编程方式生成.mht文件

这是可能的,而且肯定已经由其他人完成了——相关材料和库/源代码:

  • RFC 2557是MHT格式的基础
  • 用于从URL生成MHT文件的VB.NET源代码
  • Chilkat MHT.NET库(商业版)
  • ASPNetMHT(商用)
  • 用于从URL生成MHT文件的C#源代码
  • CDO.Message COM组件,它公开了IMessage接口

在Windows环境中,您可以通过CDO.MessageCOM组件直接执行此操作,该组件公开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的CLSID。消息组件为{CD000001-8B95-11D1-82DB-00C04FB1625D}

不过,请记住,该组件用于生成电子邮件(扩展名为.eml,而不是.mht),这意味着不包括JavaScript文件。否则,它们大致相等。

MSDN有一篇很棒的文章(2011年6月),介绍了如何使用CDO和System.Net.Mail.C#创建MHT文件。我会在VB.Net或谷歌代码版本以上使用这个。

我从RFC 2557开始,这样我就对所使用的内容有了一些基本的了解。然后去寻找处理它的代码/库

据我所知,没有BCL类可以处理MHTML。