• 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;
    }

  • 相关阅读:
    如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    FileUpload拦截器
    aspnet网页刷新
    查看SQL表的详细信息
    学习GDI+ (1)
    设计模式简单工厂模式
    对数据库表操作,统一的方法。
    随机产生300道四则运算
    略谈从计算机专业,再到软件构建的初识
    #在android studio中维护日程管理系统
  • 原文地址:https://www.cnblogs.com/wq3if2in/p/3625930.html
Copyright © 2020-2023  润新知