C# html互转mht

时间:2021-08-29 15:32:16

using System;
C# html互转mhtusing System.Runtime.InteropServices;
C# html互转mhtusing System.Text;
C# html互转mhtusing System.IO;
C# html互转mht
C# html互转mht
C# html互转mhtnamespace HTMLConversion
C# html互转mht{
C# html互转mht    /// <summary>
C# html互转mht    /// HtmlConvertToMht 类
C# html互转mht    /// </summary>
C# html互转mht    #region HtmlConvertToMht 类的实现
C# html互转mht    public class HtmlConvertToMhtByCdo : IHtmlConvertToMht
C# html互转mht    {
C# html互转mht        public HtmlConvertToMhtByCdo()
C# html互转mht        {
C# html互转mht            //
C# html互转mht            // TODO: 在此处添加构造函数逻辑
C# html互转mht            //
C# html互转mht        }
C# html互转mht        
C# html互转mht        #region 变量
C# html互转mht        
C# html互转mht        string _CharSet="gb2312";
C# html互转mht        
C# html互转mht        #endregion
C# html互转mht        
C# html互转mht        #region 属性
C# html互转mht        public string CharSet
C# html互转mht        {
C# html互转mht            get
C# html互转mht            {
C# html互转mht                return _CharSet;
C# html互转mht            }
C# html互转mht            set
C# html互转mht            {
C# html互转mht                _CharSet = value;
C# html互转mht            }
C# html互转mht        }
C# html互转mht        #endregion
C# html互转mht        
C# html互转mht        #region 方法
C# html互转mht        /// <summary>
C# html互转mht        /// 把Html格式二进制流转换成Mht格式的二进制流
C# html互转mht        /// </summary>
C# html互转mht        /// <param name="htmlUrl">Html格式的二进制流</param>
C# html互转mht        /// <returns>Mht格式的二进制流</returns>
C# html互转mht        public byte[] ConvertHtmlUrlToMht(string htmlUrl)
C# html互转mht        {
C# html互转mht            string strMhtContent = string.Empty;
C# html互转mht            byte[] BytMhtContent = null;
C# html互转mht            CDO.Message  message = new CDO.MessageClass();
C# html互转mht            ADODB.Stream  stream=null;
C# html互转mht            message.MimeFormatted =true;
C# html互转mht            message.CreateMHTMLBody(htmlUrl,CDO.CdoMHTMLFlags.cdoSuppressNone,"",""); 
C# html互转mht            stream = message.GetStream();
C# html互转mht            stream.Charset = _CharSet;
C# html互转mht            strMhtContent= stream.ReadText(stream.Size);
C# html互转mht            BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
C# html互转mht            return BytMhtContent;
C# html互转mht        }
C# html互转mht        
C# html互转mht        /// <summary>
C# html互转mht        /// 把Html格式二进制流转换成Mht格式的二进制流,成功返回true,失败返回false
C# html互转mht        /// </summary>
C# html互转mht        /// <param name="htmlUrl">Html格式的二进制流</param>
C# html互转mht        /// <param name="filePath">Mht文件的保存路径</param>
C# html互转mht        /// <returns>操作结果 成功:true,失败;false</returns>
C# html互转mht        public bool ConvertHtmlUrlToMht(string htmlUrl,string filePath)
C# html互转mht        {
C# html互转mht            bool isConvertHtmlBytesToMht = false;
C# html互转mht            CDO.Message  message = new CDO.MessageClass();
C# html互转mht            ADODB.Stream  stream=null;
C# html互转mht            message.MimeFormatted =true;
C# html互转mht            message.CreateMHTMLBody(htmlUrl,CDO.CdoMHTMLFlags.cdoSuppressNone,"",""); 
C# html互转mht            stream = message.GetStream();
C# html互转mht            stream.SaveToFile(filePath,ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
C# html互转mht            message=null;
C# html互转mht            stream.Close();
C# html互转mht            isConvertHtmlBytesToMht=true;
C# html互转mht            return isConvertHtmlBytesToMht;
C# html互转mht        }
C# html互转mht        /// <summary>
C# html互转mht        /// 把Html格式二进制流转换成Mht格式的二进制流
C# html互转mht        /// </summary>
C# html互转mht        /// <param name="htmlContent">Html格式的二进制流</param>
C# html互转mht        /// <returns>Mht格式的二进制流</returns>
C# html互转mht        public byte[] ConvertHtmlBytesToMht(byte[] htmlContent)
C# html互转mht        {
C# html互转mht            string strMhtContent = string.Empty;
C# html互转mht            string strHtmlContent =  Encoding.Default.GetString(htmlContent);
C# html互转mht            CDO.Message  message = new CDO.MessageClass();
C# html互转mht            ADODB.Stream  stream=null;
C# html互转mht            message.MimeFormatted =true;
C# html互转mht            message.HTMLBody = strHtmlContent;
C# html互转mht            stream = message.GetStream();
C# html互转mht            stream.Charset = _CharSet;
C# html互转mht            strMhtContent= stream.ReadText(stream.Size);
C# html互转mht            byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
C# html互转mht            return BytMhtContent;
C# html互转mht        }
C# html互转mht        
C# html互转mht        /// <summary>
C# html互转mht        /// 根据输入的Html文本内容(二进制)返回Mht文本内容(二进制流),成功返回true,失败返回false
C# html互转mht        /// </summary>
C# html互转mht        /// <param name="htmlContent">Html格式的二进制流</param>
C# html互转mht        /// <param name="filePath">Mht文件的保存路径</param>
C# html互转mht        /// <returns>操作结果 成功:true,失败;false</returns>
C# html互转mht        public bool ConvertHtmlBytesToMht(byte[] htmlContent,string filePath)
C# html互转mht        {
C# html互转mht            bool isConvertHtmlBytesToMht = false;
C# html互转mht            string strHtmlContent =  Encoding.GetEncoding(_CharSet).GetString(htmlContent);
C# html互转mht            CDO.Message  message = new CDO.MessageClass();
C# html互转mht            ADODB.Stream  stream=null;
C# html互转mht            message.MimeFormatted =true;
C# html互转mht            message.HTMLBody = strHtmlContent;
C# html互转mht            stream = message.GetStream();
C# html互转mht            stream.Charset = _CharSet;
C# html互转mht            string strMhtContent= stream.ReadText(stream.Size);
C# html互转mht            byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
C# html互转mht            FileStream fileStream = new FileStream(filePath,FileMode.Create,FileAccess.Write);
C# html互转mht            fileStream.Write(BytMhtContent,0,BytMhtContent.Length);
C# html互转mht            message=null;
C# html互转mht            stream.Close();
C# html互转mht            isConvertHtmlBytesToMht=true;
C# html互转mht            return isConvertHtmlBytesToMht;
C# html互转mht        }
C# html互转mht        
C# html互转mht        /// <summary>
C# html互转mht        /// 根据输入的Html文本内容(字符串)返回Mht文本内容(二进制流)
C# html互转mht        /// </summary>
C# html互转mht        /// <param name="htmlContent">Html文本内容(字符串)</param>
C# html互转mht        /// <returns>Mht格式的二进制流</returns>
C# html互转mht        public byte[] ConvertHtmlTextToMht(string htmlContent)
C# html互转mht        {
C# html互转mht            string strMhtContent = String.Empty;
C# html互转mht            CDO.Message  message = new CDO.MessageClass();
C# html互转mht            ADODB.Stream  stream=null;
C# html互转mht            message.MimeFormatted =true;
C# html互转mht            message.HTMLBody = htmlContent;
C# html互转mht            stream = message.GetStream();
C# html互转mht            stream.Charset = _CharSet;
C# html互转mht            strMhtContent= stream.ReadText(stream.Size);
C# html互转mht            byte[] bytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
C# html互转mht            return bytMhtContent;
C# html互转mht        }
C# html互转mht        
C# html互转mht    /// <summary>
C# html互转mht        /// 根据输入的Html文本内容(字符串)返回Mht文本内容(二进制流),成功返回true,失败返回false
C# html互转mht        /// </summary>
C# html互转mht        /// <param name="htmlContent">Html文本内容(字符串)</param>
C# html互转mht        /// <param name="filePath">Mht文件的保存路径</param>
C# html互转mht        /// <returns>操作结果:成功:true,失败:false</returns>
C# html互转mht        public bool ConvertHtmlTextToMht(string htmlContent,string filePath)
C# html互转mht        {
C# html互转mht            bool isConvertHtmlBytesToMht = false;
C# html互转mht            CDO.Message  message = new CDO.MessageClass();
C# html互转mht            ADODB.Stream  stream=null;
C# html互转mht            message.MimeFormatted =true;
C# html互转mht            message.HTMLBody = htmlContent;
C# html互转mht            stream = message.GetStream();
C# html互转mht            stream.Charset = _CharSet;
C# html互转mht            string strMhtContent= stream.ReadText(stream.Size);
C# html互转mht            byte[] BytMhtContent = Encoding.GetEncoding(_CharSet).GetBytes(strMhtContent);
C# html互转mht            FileStream fileStream = new FileStream(filePath,FileMode.Create,FileAccess.Write);
C# html互转mht            fileStream.Write(BytMhtContent,0,BytMhtContent.Length);
C# html互转mht            message=null;
C# html互转mht            stream.Close();
C# html互转mht            isConvertHtmlBytesToMht=true;
C# html互转mht            return isConvertHtmlBytesToMht;
C# html互转mht        }
C# html互转mht        #endregion
C# html互转mht        
C# html互转mht    } // class HtmlConvertToMhtByCdo
C# html互转mht    #endregion
C# html互转mht    
C# html互转mht} // HTMLConversion