将HTMLstring转换为图像

我有一个持有HTML标记的stringvariables。 这个HTML标记基本上代表了电子邮件的内容。

现在我想从这个实际上包含HTML标记的string内容创build一个图像。 我不想通过写入这些内容来创buildHTML文件。 我只是想使用这个string创build一个图像文件。

这是我有:

string emailBody="<html><head></head><body><p>This is my text<p>...</body</html>" 

如何从这个emailBodystring内容创build一个图像?

谢谢你的回应。 我已经使用HtmlRenderer的外部DLL来实现相同,并find相同的代码 。

这是这个代码

 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 shitty html code</p>" + "<p>This is another html line</p></body>", point, maxSize); m_Bitmap.Save(@"C:\Test.png", ImageFormat.Png); } 

尝试以下操作:

 using System; using System.Drawing; using System.Threading; using System.Windows.Forms; class Program { static void Main(string[] args) { var source = @" <!DOCTYPE html> <html> <body> <p>An image from W3Schools:</p> <img src=""http://www.w3schools.comhttp://img.dovov.comw3schools_green.jpg"" alt=""W3Schools.com"" width=""104"" height=""142""> </body> </html>"; StartBrowser(source); Console.ReadLine(); } private static void StartBrowser(string source) { var th = new Thread(() => { var webBrowser = new WebBrowser(); webBrowser.ScrollBarsEnabled = false; webBrowser.DocumentCompleted += webBrowser_DocumentCompleted; webBrowser.DocumentText = source; Application.Run(); }); th.SetApartmentState(ApartmentState.STA); th.Start(); } static void webBrowser_DocumentCompleted( object sender, WebBrowserDocumentCompletedEventArgs e) { var webBrowser = (WebBrowser)sender; using (Bitmap bitmap = new Bitmap( webBrowser.Width, webBrowser.Height)) { webBrowser .DrawToBitmap( bitmap, new System.Drawing .Rectangle(0, 0, bitmap.Width, bitmap.Height)); bitmap.Save(@"filename.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); } } } 

注意: 在一个启发了这个解决scheme的新线程中 ,积分应该归功于Hans Passant在WebBrowser控件 问题上的出色答案 。

没有必要将HTML转换为图像发送作为电子邮件的正文。

只需将内容设置为您所拥有的string以及相应正文部分的内容types。