一応説明すると、MHTとはMIME HTML Documentの拡張子のことです。mhtmlでも同義です。Internet ExplorerでWebページを保存する際に「Webアーカイブ、単一のファイル」を選ぶと、この形式で保存されますね。
.NETで、mhtファイルを作成するツールを探したんですけど、ChilkatMHTぐらいしか見当たらなくて、Microsoft MIMEEDIT Type Lib(C:\WINDOWS\System32\inetcomm.dll)も使えるものなのかどうかもさっぱりわかりません。本ツールはhtmlパーサ含め全てお手製です。
MHT作成DLL
- クラスライブラリ
MHTGenarator.dll (24.0KB)
MD5ハッシュ値:65b0925665fc794d97bfde7889cf348a
- ファイル指定は「http://~」と「D:\~」の両方に対応しています。(「https://~」には未対応)
- <img>タグの src 属性で指定されたファイルをmhtに取り入れます。
- <link>タグの href属性で指定された*.cssファイルをmhtに取り入れます。mhtの規約では本来、CSSは含めないようですが、便宜上、含めることにしました。
- 利用法サンプル1
MimeDocument md = new MimeDocument("http://jomora.bne.jp/wp/");
md.Write(@"D:\jomorizm.mht");
- 利用法サンプル2
MimeDocument md = new MimeDocument("D:\jomorizm.htm");
using (FileStream fs = new System.IO.FileStream(@"D:\jomorizm.mht", FileMode.Create))
using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default)) {
md.Write(sw);
}