2008-12-04 15 views
17

Necesito una herramienta para convertir automáticamente HTML simple en una imagen. Controlaré la entrada de HTML, que consistirá en etiquetas de formato de texto simple y posiblemente enlaces de imagen; no es necesario que pueda representar HTML arbitrario. ¿Hay una manera simple de hacer esto?Motor de diseño HTML simple para convertir HTML a una imagen

He revisado los motores de diseño HTML como Gecko y Webkit, pero, francamente, me siento abrumado por la cantidad de opciones que tienen: ¡no necesito un navegador web completo! ¿Es posible usar estos motores de esta manera? ¿Alguien puede dirigirme en la dirección correcta?

Otras posibilidades como descargas de navegador, dependen de capturas de pantalla de navegadores reales, pero voy a ejecutar esta aplicación en un servidor web con muchos usuarios potenciales, por lo que el rendimiento es importante y me temo que este tipo de solución no escala.

Ideas?

EDIT: Perdón olvide mencionar que mi servidor ejecuta Linux, por lo que las soluciones de Windows no serán de ayuda. :)

Respuesta

14

Respondiendo, mi propia pregunta Encontré esta útil herramienta que utiliza WebKit para representar una página y luego captura el resultado como una imagen o incluso en formato PDF.

http://cutycapt.sourceforge.net/

La idea es similar a khtml2png mencionado por Jay, pero me gusta esta implementación mejor.Además, para referencia futura, ejecutar un X frame-buffer virtual a través de Xvfb no es tan intensivo en memoria como lo había temido.

+2

El código fuente para esto no contiene makefile, NO instructions; y no es inmediatamente obvio dónde obtener un Linux Binary de su sitio. – JeffG

0

¿Quizás puedas convertir el HTML a otro formato que sea más fácilmente convertible a una imagen? En Google encontré algo llamado html2ps y html2pdf. Desde PS, está a solo un paso de EPS, y eso se puede representar como una imagen. O algo así.

+0

Ésta es una buena sugerencia. Ghostscript por ejemplo puede convertir a varios formatos de imagen de un archivo fuente ps, que a su vez puede ser creado por html2ps – Jay

2

Windows? En caso afirmativo, HTMLayout puede ayudar, es un motor de renderización gratuito y tiene una API simple. Usarlo desde C/C++ es muy sencillo: no sería difícil convertir HTML en un BMP.

http://www.terrainformatica.com/htmlayout/

está libre también.

5

Usted puede resultar útil, si está ejecutando en Linux y tienen las librerías de KDE disponibles: khtml2png

khtml2png es un programa de línea de comandos para crear capturas de pantalla de páginas web. Utiliza libkhtml (la biblioteca que se utiliza en el navegador web de KDE Konqueror). En khtml2png 2.0.5 a 2.5.0 "convertir" del kit de herramientas de conversión gráfica ImageMagick se usa para crear los archivos de salida en varios formatos de archivo de imagen. 2.6.0 y desarrollo futuro usarán la conversión incorporada de la biblioteca Qt.

También, hacer un seguimiento de lo que sugirió Vilx, podría utilizar html2ps para convertir HTML a un archivo PS, entonces gs (Ghostscript) para convertir el archivo PS en un png o jpg. Ver http://www.karakas-online.de/myLinuxTips/ps2png.html para un enfoque.

0

Usted puede usar la aplicación PDFCreator. Esta aplicación permite imprimir en muchos formatos, incluidas imágenes de todo tipo. Incluye un servidor ActiveX/com que le permite automatizar el proceso con bastante facilidad. Puede convertir prácticamente cualquier cosa que pueda imprimir. Un inconveniente de este método es que, dado que utiliza el trabajo de marco de impresión para la conversión, puede convertir solo un documento a la vez, por lo que no sé si será lo suficientemente bueno para un sitio web.

+0

Tenga en cuenta que el remitente se ejecuta en Linux, por lo que una solución de Windows (ActiveX/com) no es útil en este caso. – Jay

7

He usado CutyCapt antes de que sea un poco torpe e hinchado, requiriendo Qt.

IMO, PhantomJs (un webkit sin cabeza) de lejos la mejor solución, rápida, fácil y limpia. Puedes hacer muchas cosas con eso.

Ver http://phantomjs.org

O ver this

0

siempre he tenido muy buena suerte con el comando wkhtmltoimage (y, para la salida impresa, wkhtmltopdf) que han sido durante años disponibles de forma nativa en Ubuntu y tienen, si Recuerdo, siempre renderizado correctamente y bastante rápido también.

http://wkhtmltopdf.org/

Hay varias opciones disponibles, pero una invocación básica se parece a:

wkhtmltoimage tmp.html tmp.png