当前位置: 代码迷 >> ASP.NET >> HTML生成图片有关问题
  详细解决方案

HTML生成图片有关问题

热度:4699   发布时间:2013-02-25 00:00:00.0
HTML生成图片问题
有没方法让HTML生成图片,求解,如例:

<p><img width=\"500\" height=\"334\" alt=\"\" src=\"/uploads/1(4).jpg\" /></p>\r\n<div class=\"blkCont\" style=\"margin: 0px 20px\">\r\n<p>继3月14日全球发布之后,微软中国3月21日在北京正式面向中国消费者推出Internet Explorer 9(以下简称IE9)。IE9浏览器正式版在全球发布后得到用户追捧,24小时内下载次数达到235万。目前在全球范围内已有包括中国网站在内的250多家顶级网站利用IE9的功能为用户提供与众不同的体验,用户覆盖到全球超过10亿的活跃网络用户。</p>\r\n<p>IE9利用了Windows 7以及电脑硬件的性能,支持HTML 5和CSS3等现代网络标准,具有快速、简洁、可靠、具有互操作性等新特性,充分让用户把目光聚焦到网站和应用本身,创造出如同本地应用程序般的&ldquo;沉浸式&rdquo;浏览体验。</p>\r\n</div>

把这段HTML生成图片,应如何处理呢

------解决方案--------------------------------------------------------
帮你 顶下。
确实不知道怎么能实现,肯定要先模拟IE解析,然后在通过动态获取坐标来进行像素取点,最后生成图案片。
------解决方案--------------------------------------------------------
有。
C# code
using System;using System.ComponentModel;using System.Drawing;using System.Windows.Forms;using System.Runtime.InteropServices;using mshtml;using SHDocVw;namespace WindowsApplication1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            try            {                webBrowser1.Navigate("http://www.google.com/");                while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)                {                    Application.DoEvents();                }                mshtml.IHTMLDocument2 doc = webBrowser1.Document.DomDocument as IHTMLDocument2;                IHTMLElementRender render = doc.body as IHTMLElementRender;                using (System.Drawing.Bitmap img = new Bitmap(webBrowser1.Width, webBrowser1.Height))                using (Graphics g = Graphics.FromImage(img))                {                    IntPtr hdc = g.GetHdc();                    render.DrawToDC(hdc);                    g.ReleaseHdc(hdc);                     img.Save("c:\\temp\\a.jpg");                }            }            catch (Exception err)            {                MessageBox.Show(err.ToString());            }        }    }    /// <remarks>    ///  prototype from Tlbimp      /// </remarks>    [    Guid("3050F669-98B5-11CF-BB82-00AA00BDCE0B"),    InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown),    ComImport    ]    interface IHTMLElementRender    {        void DrawToDC([In] IntPtr hDC);        void SetDocumentPrinter([In, MarshalAs(UnmanagedType.BStr)] string bstrPrinterName, [In] IntPtr hDC);    };}
  相关解决方案