C#使用WebBrowser实现HTML转图片功能的方法-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联专注于乌海企业网站建设,响应式网站设计,成都做商城网站。乌海网站建设公司,为乌海等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

小编给大家分享一下C#使用WebBrowser实现HTML转图片功能的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

在 .NET 平台上,我们有多种方式可以将一段 HTML 文本转换为一张图片:HTML Renderer、SelectPdf 、Aspose.Html 等。

在 WinForm 程序中,每一个 System.Windows.Forms.Control 的派生类型均包含一个名为 DrawToBitmap 的方法,该方法可以将控件绘制到一张图片上。WebBrowser 具备显示 HTML 的功能,又因为其从 Control 类型派生,所以包含 DrawToBitmap 方法。我们只需将要在 WebBrowser 上加载要展示的 HTML 并在其 DocumentCompleted 事件中绘制图片即可:

public static async Task HtmlToImage(String html, int width = 1024, int height = 768)
{
  var taskCompletionSource = new TaskCompletionSource();
  var thread = new Thread(() =>
  {
    using var browser = new WebBrowser
    {
      Width = width,
      Height = height,
      ScrollBarsEnabled = false
    };
    browser.DocumentCompleted += (s, e) =>
    {
      var b = s as WebBrowser;
      if (b == null)
      {
        return;
      }
      var bmp = new Bitmap(b.Width, b.Height);
      b.DrawToBitmap(bmp, new Rectangle(0, 0, b.Width, b.Height));
      taskCompletionSource.SetResult(bmp);
      Application.ExitThread();
    };
    browser.DocumentText = html;
    Application.Run();
  });
  thread.SetApartmentState(ApartmentState.STA);
  thread.Start();
  return await taskCompletionSource.Task;
}

当前标题:C#使用WebBrowser实现HTML转图片功能的方法-创新互联
新闻来源:http://bzwzjz.com/article/dhihse.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站建设推广 手机网站制作 阿坝网站设计 网站设计公司 成都定制网站建设 营销型网站建设 响应式网站设计方案 网站设计制作 响应式网站设计 重庆电商网站建设 品牌网站建设 高端定制网站设计 成都网站建设 自适应网站建设 宜宾网站设计 响应式网站建设 外贸网站设计方案 成都h5网站建设 成都网站制作 手机网站制作 定制网站设计 手机网站设计