将Html转换为图像

时间:2015-08-04 09:36:57

标签: c# wcf

我创建了这个方法来在我的窗口服务中打印html页面。

    public async Task PrintHtmlPage(PrintPageEventArgs e, string _pcontents)
    {
        WebBrowser control = new WebBrowser();
        control.Width = 710;
        control.Height = 1010;
        control.DocumentText = _pcontents;

        while (control.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }
        Bitmap bitmap = new Bitmap(710, 1010);
        //Bitmap bitmap = new Bitmap(myBrowser.Width, myBrowser.Height);
        for (int Xcount = 0; Xcount < bitmap.Width; Xcount++)
        {
            for (int Ycount = 0; Ycount < bitmap.Height; Ycount++)
            {

                bitmap.SetPixel(Xcount, Ycount, Color.Black);
            }
        }
        control.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height));

        RectangleF printArea = new RectangleF(65, 10, 710, 1010);
        e.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
        e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
        e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
        e.Graphics.DrawImage(bitmap, printArea);
        control.Dispose();
    }

我正在使用此

调用方法
         try
            {
                var t = new Thread(() => PrintHtmlPage(e, _contents).ConfigureAwait(true));
                t.SetApartmentState(ApartmentState.STA);
                t.Start();
                t.Join();

            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.ToString());
                throw ex;
            }

问题: 有时打印空白页。

0 个答案:

没有答案