• C# html转mht


    项目中引入cdosys.dll组件,位置:  C:WindowsSystem32cdosys.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;
    }

  • 相关阅读:
    windows2019开发windows服务
    vue开发笔记
    kafka管理界面 kafka eagle
    WPF 无边框窗体改变大小和移动
    3种方法改变Linux的默认shell
    Linux,原来cd命令这样玩
    Linux中cp命令的使用方法
    Linux 中ls命令的使用
    如何查看Linux的内存使用率
    Linux中如何重命名文件
  • 原文地址:https://www.cnblogs.com/zcm123/p/6087029.html
Copyright © 2020-2023  润新知