Convierta un Control HTML (Div o Table) a una imagen usando C #

¿Es posible convertir un control Html a una imagen en C #?

¿Hay algún método C # donde puedo pasar el objeto Html Control y devolver una imagen de ese control html?

¿Es esto posible, alguna sugerencia?

Hemos utilizado http://iecapt.sourceforge.net/ para convertir HTML a imagen. Puedes probarlo. Está disponible GRATIS .

Considere esta biblioteca (¡no probada!) En guangmingsoft llamada htmlsnapshot.

agregue una referencia a htmlsnap2.dll

Hay un proyecto de muestra allí para descargar.

Aquí está su código de muestra, extraído directamente de ese enlace:

snap = new CHtmlSnapClass(); snap.Url("www.google.com", "*") byte[] data = (byte[])snap.GetImageBytes(".jpg"); //byte[] data = (byte[])snap.GetThumbImageBytes(".jpg", 100, 100, 1); FileStream fs = File.OpenWrite(@"c:\1.jpg"); BinaryWriter br = new BinaryWriter(fs); br.Write(data); br.Close(); fs.Close(); 

Actualización Si solo deseaba un control en particular, podría escribir una página cuyo trabajo es volver a procesar su control objective como los únicos bits de HTML en la página.

El control que está describiendo tiene, como resultado, HTML. Eso es todo lo que hace.

Tu problema es que quieres convertir un fragmento de HTML en una imagen. Renderizar HTML lo hace un navegador: ASP.NET básicamente no tiene nada que ver con la forma en que HTML es procesado por un cliente.

La mayoría de las bibliotecas .NET que hacen este trabajo (convirtiendo HTML en imágenes) usan IE para impulsar la conversión. Algunas de esas utilidades incluyen:

  1. Captura de pantalla de sitios web – http://www.websitesscreenshot.com/
  2. El htmlsnapshot antes mencionado – http://www.guangmingsoft.net/htmlsnapshot/help.htm
  3. Básicamente, cualquier biblioteca HTML -> PDF tiene esta funcionalidad, incluyendo ABCPdf – http://www.websupergoo.com/abcpdf-1.htm

Pero la respuesta más básica a la pregunta es que los controles ASP.NET no se procesan en un formato de imagen. Tendrá que hacer una captura de pantalla IE de una página que solo tiene ese control (o HTML) en ella.

No lo he intentado yo mismo, pero algo que he querido echarle un vistazo que puede ayudarte es HTMLRenderer .

Necesita crear una página separada que se convertirá en imagen y llamarla en iframe. Luego prueba lo siguiente:
http://articles.sitepoint.com/article/generating-asp-net-images-fly
O
http://www.guangmingsoft.net/wordpress/convert-html-to-image-without-temporary-files-in-c/