Que tal a todos, vuelvo a escribir para éste semestre en el blog del GLUD, no se porque nadie más ha escrito desde el 30 de Abril. Tengo pendiente 2 artículos que incluyen software libre y otras entradas de blog que no he sido capaz de terminar por falta de tiempo (aunque podría sacarse, es más bien cuestión de ánimo y juicio). Comienzo entonces mi maratón semestral de entradas de blog, y ahora con mi distribución principal, Arch Bang, a ver si logro soportarmela ya que extraño a mi querida Fedora.

Comencemos entonces!!!

Necesité la funcionalidad de imprimir un contenedor de un sitio web, se me presentaron problemas con otras soluciones del lado del servidor, además de que tenía que meter las manos para configurar cosas en el servidor y eso no me parece una solución genérica para implementar muchas veces.

Se me ocurrió buscar y encontré el html2canvas, funciona realmente bien, pero algunas imágenes no funcionan, de ésta manera entonces busque un proyecto en github, de un proxy en php que sirve muy bien.

1) Agregar la biblioteca html2canvas

document.body.appendChild(dojo.create(“script”,{src:”http://html2canvas.hertzen.com/build/html2canvas.js”}));

o si no tienes dicha api (dojo toolkit)

var script = document.createElement(“script”);
script.url = “http://html2canvas.hertzen.com/build/html2canvas.js”;
document.body.appendChild(script);

2) Necesitamos también el proxy en php, yo lo encontré en el siguiente proyecto https://github.com/obscurecloud/html2canvas-proxy-php De ésta forma hay que copiarlo en una carpeta, y modificar la url que hay en el interior del archivo.

3) Ahora está cargado, podrías también esperar la carga del script con un evento “onload”, para que quede automatizada

var objeto; html2canvas(document.body, {
“proxy”:”proxy.php”,
“onrendered”: function(canvas) { objeto = canvas; }
});

4) Ahora queda convertir el objeto canvas en una imagen

var img = objeto.toDataURL(“image/png”);

Ya puedes ponerlo en un contenedor o abrirlo en otra ventana y lanzarle la función imprimir del window.

Buena suerte,

Grupo GNU/Linux Universidad Distrital