Imprimir campos html dinámicos con imágenes
En el curro tenemos hecho un pequeńo “navegador” en Flash que carga contenido HTML de un XML. Ese contenido normalmente tiene imágenes que son cargadas dinámicamente. En su día me las apańé para imprimir el texto, incluso cuando es multipágina. El problema es que las imágenes nunca se imprimen.
Básicamente, no hay forma de saber cuando una imagen dinámica se ha cargado en un campo de texto HTML. Por lo tanto siempre quedan fuera de la impresión.
Para más gracia, uno de los principales problemas de imprimir en Flash es que no puedes saber el área de impresión real hasta que no ha salido el diálogo de impresión del sistema. Eso hace muy difícil (por no decir imposible) retardar la impresión con un setInterval o algo así (se supone que para dar tiempo a que las imágenes se carguen). Asumir unas dimensiones estándar de la impresora… pues no sería muy correcto, la verdad. Vaya usted a saber si la impresora es A3, A4, diferentes márgenes o wadus.
Sin matarme a buscar he encontrado un par de sitios en los que lo comentan: LiveDocs (último comentario), Flash IMG tag problems (último punto).
Una idea muy fea para “solucionarlo” podría ser abrir una pagina HTML nueva, pasar el código HTML dinámico a una función JS y lanzar desde allí la impresión HTML, que está mucho mejor gestionada que en Flash, claro.
¿Alguien tiene alguna idea feliz?
March 13th, 2007 at 8:49 am
Hola Zárate.
Hace poco realicé un proyecto para un cliente que me pedía la creación de informes para entregar a sus clientes. Estos podían incluir hasta 50 páginas con imágenes incluidas, incluso tenía que ser capaz de realizar paginaciones con ‘head’ y piés de página… Este proyecto debía ser en Flash y cargar los documentos en XML.
Después de un més realizando pruebas en Flash, llegé a la conclusión que Flash como herramienta de impresión de documentos extensos es imposible ¡¡¡ No recomiendo intentarlo NUNCA ¡¡
Solución:
Formateé los textos que cargaba en XML a formato HTML, los envié mediante un POST y los transformé en PDF ¡¡¡ Solución relativamente sencilla y posiblemente más elegante y controlable.
Para realizar el texto formateado desde Flash a PDF utilicé la librería PHP, http://html2fpdf.sourceforge.net/, lógicamente que necesitas un servidor PHP.
Este proyecto me llevó cerca de 10 meses de trabajo, para que te hagas una idea que realmente estube mucho tiempo realizando pruebas desde Flash.
Html2fpdf también tiene sus limitaciones, pero infinítamente mas sencillo y controlable.
En fin, es mi experiencia (que fué terrible…)
Un saludo ¡