|
Hola, a mi esto me pasaba en alguna ocasión y sigue pasándome en un programa, en otro no, como más adelante comento. Por lo que pude observar, se debe a un problema de gestión de memoria entre el SO y la impresora. En un caso, la imagen con el report ocupa memoria mientras se está previsualizando, a veces esta memoria no se gestiona bien y no carga correctamente el dato del bitmap, dando error interno pero sigue continuando el proceso de previsualización, otras daba "metafile is not valid", cuando es la misma imagen en todas las hojas del informe... => memoria. El objeto usado para realizar el informe era el quickreport 3.0.5
Este caso lo solucioné haciendo que el usuario no imprimiera la imagen si así lo deseaba.
En tu caso concreto, dado que lanzas directamente la impresión en el canvas, puedes comprobar la memoria RAM que tienen las impresoras que están realizando la impresión. Prueba a cambiar la configuración de las mismas en "imprimir directamente en impresora", sin usar la cola, es posible que el flujo de datos deje más libertad y pueda cargar la imagen en un momento dado.
Por regla general, las impresoras disponen de una cantidad de MB limitado para controlar el flujo de información y procesarlo. A veces, el flujo no es suficiente para controlar datos, si esa imagen es el último dato en ser enviado, y no cabe, la impresora toma la medida de "mejor imprimir poco que no imprimir nada", e imprime. En otras impresoras darán errores, previamente al S.O. o durante la impresión en su visor LED si lo tuviera, etc.
Otra opción que se me ocurre para saber si esto es así es que pruebes con imágenes pesadas a lanzarlas directamente en impresión en el canvas, observarás que más de una vez, la impresora no imprime todo lo que se le manda. Yo lo tengo comprobado en una aplicación que generaba carteles. Estos carteles se imprimían casi siempre bien, pero cuando el cartel tenía imágenes pesadas a veces no salía el fondo, o no aparecía alguna de las imágenes. Como solución, al usar el freereport, en esta herramientas, cambiamos la imagen de fondo eliminándola y usando los objetos propios del report, además de pedirle al usuario que cuando cargara las imágenes en la base de datos, procediera a redimensionarlas a 1024x768. El problema se solucionó y hasta ahora (ha pasado más de 1 año) los carteles salen todos sin este problema.
Espero que esto te ayude.
|