HTML格式转成MHT格式的组件
2016-09-26 09:10
106 查看
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.IO;
namespace HTMLConversion
{
/// <summary>
/// HtmlConvertToMht 类
/// </summary>
#region HtmlConvertToMht 类的实现
public class HtmlConvertToMhtByCdo : IHtmlConvertToMht
{
public HtmlConvertToMhtByCdo()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region 变量
string _CharSet="gb2312";
#endregion
#region 属性
public string CharSet
{
get
{
return _CharSet;
}
set
{
_CharSet = value;
}
}
#endregion
#region 方法
/// <summary>
/// 把Html格式二进制流转换成Mht格式的二进制流
/// </summary>
/// <param name="htmlUrl">Html格式的二进制流</param>
/// <returns>Mht格式的二进制流</returns>
public byte[] ConvertHtmlUrlToMht(string htmlUrl)
{
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 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;
}
/// <summary>
/// 把Html格式二进制流转换成Mht格式的二进制流
/// </summary>
/// <param name="htmlContent">Html格式的二进制流</param>
/// <returns>Mht格式的二进制流</returns>
public byte[] ConvertHtmlBytesToMht(byte[] htmlContent)
{
string strMhtContent = string.Empty;
string strHtmlContent = Encoding.Default.GetString(htmlContent);
CDO.Message message = new CDO.MessageClass();
ADODB.Stream stream=null;
message.MimeFormatted =true;
message.HTMLBody = strHtmlContent;
stream = message.GetStream();
stream.Charset = _CharSet;
strMhtContent= stream.ReadText(stream.Size);
byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
return BytMhtContent;
}
/// <summary>
/// 根据输入的Html文本内容(二进制)返回Mht文本内容(二进制流),成功返回true,失败返回false
/// </summary>
/// <param name="htmlContent">Html格式的二进制流</param>
/// <param name="filePath">Mht文件的保存路径</param>
/// <returns>操作结果 成功:true,失败;false</returns>
public bool ConvertHtmlBytesToMht(byte[] htmlContent,string filePath)
{
bool isConvertHtmlBytesToMht = false;
string strHtmlContent = Encoding.GetEncoding(_CharSet).GetString(htmlContent);
CDO.Message message = new CDO.MessageClass();
ADODB.Stream stream=null;
message.MimeFormatted =true;
message.HTMLBody = strHtmlContent;
stream = message.GetStream();
stream.Charset = _CharSet;
string strMhtContent= stream.ReadText(stream.Size);
byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
FileStream fileStream = new FileStream(filePath,FileMode.Create,FileAccess.Write);
fileStream.Write(BytMhtContent,0,BytMhtContent.Length);
message=null;
stream.Close();
isConvertHtmlBytesToMht=true;
return isConvertHtmlBytesToMht;
}
/// <summary>
/// 根据输入的Html文本内容(字符串)返回Mht文本内容(二进制流)
/// </summary>
/// <param name="htmlContent">Html文本内容(字符串)</param>
/// <returns>Mht格式的二进制流</returns>
public byte[] ConvertHtmlTextToMht(string htmlContent)
{
string strMhtContent = String.Empty;
CDO.Message message = new CDO.MessageClass();
ADODB.Stream stream=null;
message.MimeFormatted =true;
message.HTMLBody = htmlContent;
stream = message.GetStream();
stream.Charset = _CharSet;
strMhtContent= stream.ReadText(stream.Size);
byte[] bytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
return bytMhtContent;
}
/// <summary>
/// 根据输入的Html文本内容(字符串)返回Mht文本内容(二进制流),成功返回true,失败返回false
/// </summary>
/// <param name="htmlContent">Html文本内容(字符串)</param>
/// <param name="filePath">Mht文件的保存路径</param>
/// <returns>操作结果:成功:true,失败:false</returns>
public bool ConvertHtmlTextToMht(string htmlContent,string filePath)
{
bool isConvertHtmlBytesToMht = false;
CDO.Message message = new CDO.MessageClass();
ADODB.Stream stream=null;
message.MimeFormatted =true;
message.HTMLBody = htmlContent;
stream = message.GetStream();
stream.Charset = _CharSet;
string strMhtContent= stream.ReadText(stream.Size);
byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
FileStream fileStream = new FileStream(filePath,FileMode.Create,FileAccess.Write);
fileStream.Write(BytMhtContent,0,BytMhtContent.Length);
message=null;
stream.Close();
isConvertHtmlBytesToMht=true;
return isConvertHtmlBytesToMht;
}
#endregion
} // class HtmlConvertToMhtByCdo
#endregion
} // HTMLConversion
相关文章推荐
- HTML格式转成MHT格式的组件
- SautinSoft.RtfToHtml (RTF格式转换为HTML格式) 组件
- 使用TWebBrowser组件保存网页为html和mht文件
- 将mht文件替换为html格式
- Ext.form.DisplayField扩展组件:在formpanel中显示html格式的内容
- 使用TWebBrowser组件保存网页为html和mht文件 收藏
- 如何使用cdonts组件发送html格式邮件
- js&&html校验组件(非空,格式等)
- java工具类mht转html格式文件 及简单的HTML解析
- 保存网页的html和mht格式的玄机
- 使用TWebBrowser组件保存网页为html和mht文件 收藏
- Ext.form.DisplayField扩展组件:在formpanel中显示html格式的内容
- java工具类mht转html格式文件
- 文本添加格式转换为html类!
- ShadowStar CodeFast V0.5 支持HTML格式拷贝输出
- 在ASP中使用FSO组件生成HTML页面
- 如何用 servlet 打开非 HTML 格式的文档
- PHP PEAR MAIL发送TEXT/HTML格式邮件
- 邮件发送类,支持HTML格式,支持优先级设置
- 将String转化成HTML格式