C# html转mht

项目中引入cdosys.dll组件,位置:  C:\Windows\System32\cdosys.dll

CDO、ADODB 这些类都来自于cdosys.dll组件

/// <summary>
/// 把Html格式二进制流转换成Mht格式的二进制流
/// </summary>
/// <param name="htmlUrl">Html格式的二进制流</param>
/// <returns>Mht格式的二进制流</returns>
public static byte[] ConvertHtmlUrlToMht(string htmlUrl)
{
string _CharSet = "gb2312";
string strMhtContent = string.Empty;
byte[] BytMhtContent = null;
CDO.Message message = new CDO.MessageClass();
ADODB.Stream stream = null;
message.MimeFormatted = true;
message.CreateMHTMLBody(htmlUrl, CDO.CdoMHTMLFlags.cdoSuppressNone, "", "");
stream = message.GetStream();
stream.Charset = _CharSet;
strMhtContent = stream.ReadText(stream.Size);
BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
return BytMhtContent;
}
/// <summary>
/// 把Html格式二进制流转换成Mht格式的二进制流,成功返回true,失败返回false
/// </summary>
/// <param name="htmlUrl">Html格式的二进制流</param>
/// <param name="filePath">Mht文件的保存路径</param>
/// <returns>操作结果 成功:true,失败;false</returns>
public static bool ConvertHtmlUrlToMht(string htmlUrl, string filePath)
{
bool isConvertHtmlBytesToMht = false;
CDO.Message message = new CDO.MessageClass();
ADODB.Stream stream = null;
message.MimeFormatted = true;
message.CreateMHTMLBody(htmlUrl, CDO.CdoMHTMLFlags.cdoSuppressNone, "", "");
stream = message.GetStream();
stream.SaveToFile(filePath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
message = null;
stream.Close();
isConvertHtmlBytesToMht = true;
return isConvertHtmlBytesToMht;
}

时间: 2024-10-23 15:50:09

C# html转mht的相关文章

C#代码实现把网页文件保存为mht文件

MHT叫“web单一文件”.顾名思义,就是把网页中包含得图片,CSS文件以及HTML文件全部放到一个MHT文件里面.而且浏览器可以直接读取得. 由于项目需要,需实现把指定的网页文件保存为mht文件.于是到网上搜索了相关的资料.找到了一份代码.测试后通过. 现将实现过程记录如下: Step 1:项目引用文件: 安装目录/System32/cdosys.dll(c:/windows/System32/cdosys.dll),这样,将增加两个命名空间:ADODB, CDO. Step 2:放一个按钮b

Android5.1 - Email app打开mht文件闪退

log如下: 07-16 01:58:54.966: E/AndroidRuntime(14224): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.email/com.android.mail.browse.EmlViewerActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat th

delphi 保存网页MHT

uses ADODB_TLB, CDO_TLB, ComObj,MSHTML;{$R *.dfm}{能把网页如 WWW.QQ.COM保存为一个单文件 .MHT但不能把一个 A.HTM 保存为一个单文件 .MHT}  procedure WB_SaveAs_MHT(WB: TWebBrowser; FileName: TFileName);var  Msg: IMessage;  Conf: IConfiguration;  Stream: _Stream;  URL: Widestring;be

使用TWebBrowser组件保存网页为html和mht文件 收藏

一.保存为HTML文件 uses ActiveX;...procedure WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ;var  PersistStream: IPersistStreamInit;  Stream: IStream;  FileStream: TFileStream;begin  if not Assigned(WB.Document) then  begin    ShowMessage('Docume

Webbrowser中显示MHT文件

把MHT文件存成临时文件,用WEBBROWSER的Navigate方法打开,代码如下: //从程序集中读取资源文件 Assembly asmm = Assembly.GetCallingAssembly(); Assembly asm = Assembly.ReflectionOnlyLoadFrom(AddInfo.HTMLAssembly); Stream str=asm.GetManifestResourceStream(AddInfo.HTMLNavigationFile); if (s

chrome保存网页为单个文件(mht格式)

网页归档(英语:MIME HTML或MIME Encapsulation of Aggregate HTML Documents,又称单一文件网页或网页封存盘案)为以多用途互联网邮件扩展格式,将一个多附件网页(如包含大量图片.Flash动画.Java小程序的网页)存储为单一文件[1],可用于发送HTML电子邮件,此单一文件即称为一网页封存盘案,其扩展名为.mht.这种格式有时被简称为MHT. chrome默认是没有该功能,一般情况下,我都是把要保存的网页,复制到ie打开,然后再保存.但是这样太麻

save a web page as a single file (mht format) using Delphi code

Here's how to save a web page as a single file (mht format) using Delphi code: uses CDO_TLB, ADODB_TLB;...PRocedure WB_SaveAs_MHT(WB: TWebBrowser; FileName: TFileName);var Msg: IMessage; Conf: IConfiguration; Stream: _Stream; URL : widestring;begin i

Java 实现HTML富文本导出至word完美解决方案

一. 问题的提出 最近用java开发一个科技项目信息管理系统,里面有一个根据项目申请书的模板填写项目申报信息的功能,有一个科技项目申请书word导出功能. 已有的实现方式:采用标准的jsp模板输出实现,简单地说,就是把数据渲染进jsp页面,然后将此页面另存为doc文档,从而达到word导出效果.但是存在以下几个问题: (1) 由于导出的html网页格式,打开word后,默认显示的视图模式为WEB版式视图: (2) 修改word文档后,会新增一个相关联的文件夹,word的html中会引用这个文件夹

java 附件上传时后台验证上传文件的合法性

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8