如何使用C#后面的代码将HTML代码转换为图像

时间:2017-06-28 07:16:04

标签: c# asp.net winforms

我正在尝试使用C#中的HTML代码获取图像,但我没有获得图像。 您能否指导我如何将HTML代码转换为C#代码后面的图像。

我尝试将html代码字符串传递给Bitmap,但我没有得到这个。

mailtxt = "<html><body><table><tr><td>Hello Sir</td></tr></table></body></html>";
StringBuilder str = new StringBuilder();str.Append(mailtxt.ToString());
Bitmap objBmpImage = new Bitmap(2, 2);

        int intWidth = 0;
        int intHeight = 0;

        // Create the Font object for the image text drawing.
        System.Drawing.Font objFont = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);

        // Create a graphics object to measure the text's width and height.
        Graphics objGraphics = Graphics.FromImage(objBmpImage);

        // This is where the bitmap size is determined.
        intWidth = (int)objGraphics.MeasureString(str.ToString(), objFont).Width;
        intHeight = (int)objGraphics.MeasureString(str.ToString(), objFont).Height;

        // Create the bmpImage again with the correct size for the text and font.
        objBmpImage = new Bitmap(objBmpImage, new Size(intWidth, intHeight));


        // Add the colors to the new bitmap.
        objGraphics = Graphics.FromImage(objBmpImage);

        // Set Background color

        objGraphics.Clear(System.Drawing.Color.White);
        objGraphics.SmoothingMode = SmoothingMode.HighQuality;



        objGraphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; //  <-- This is the correct value to use. ClearTypeGridFit is better yet!
        objGraphics.DrawString(str.ToString(), objFont, new SolidBrush(System.Drawing.Color.Black), 0, 0, StringFormat.GenericDefault);

        objGraphics.Flush();

提前致谢。

1 个答案:

答案 0 :(得分:0)

public void ConvertHtmlToImage()
{
   Bitmap m_Bitmap = new Bitmap(400, 600);
   PointF point = new PointF(0, 0);
   SizeF maxSize = new System.Drawing.SizeF(500, 500);
   HtmlRenderer.HtmlRender.Render(Graphics.FromImage(m_Bitmap),
                                           "<html><body><p>This is a just a html code</p>"
                                           + "<p>This is another html line</p></body>",
                                            point, maxSize);

   m_Bitmap.Save(@"C:\Test.png", ImageFormat.Png);
}