Calidad de imágenes y alineación de informes

No se si el problema que expongo es un bug de la aplicación, o simplemente que tengo mal programado el informe.
El caso es que hay una gran diferencia entre un método y otro.

  • Imprimiendo por proceso, pese a una pequeña pérdida en la imagen, el resto es perfecto, el alineamiento se mantiene
  • Imprimiendo desde el botón del componente manejador de informes la calidad de las imágenes es considerablemente más baja, aunque el alineamiento también se mantiene
  • Imprimiendo directamente a archivo (exportado), la calidad de la imagen es casi perfecta, bastante mejor que por proceso, pero el alineamiento se pierde

Lógicamente, si se modifica la plantilla del informe reduciendo el alineamiento izquierdo para que resulte óptimo en la exportación, también se modifica para la impresión por proceso y por botón, con lo que estas se van.

Adjunto las comparativas (las subo en pdf porque mantienen mas la relación de calidad, si se pasan a formato imagen se distorsionan.)

¿Alguien ha tenido este mismo problema? ¿Es el componente mal programado por mi parte?

Saludos

Programado del componente

Imágenes a comparar

Por_Boton_a_Impresora.pdf (42.5 KB)

Por_Proceso_a_Impresora.pdf (80.2 KB)

Exportado_pdf.pdf (142 KB)

Como se puede observar en las imágenes, estoy trabajando con la 7.12.0.11769

¿Alguna pista de por donde tirar???

Hola.

El asunto con los márgenes en los informes nativos de Velneo es un poco “peculiar”. Yo no recuerdo haber tenido el problema que comentas (al menos, en cuanto a alineamiento), pero siempre utilizo márgenes fijos. Otra cosa es encontrar los márgenes adecuados, que siempre es un problema, pero siempre utilizo fijos (empieza con 25 en cada uno, y ajústalos como necesites).

En cuanto al problema de la calidad en las imágenes, no tengo claro exactamente por qué puede ocurrir.

Yo también he detectado estos problemas. La impresión del modelo no es la misma si se manda directamente a la impresora, a pdf o al visor. Usa márgenes fijos.
En cuanto a las imágenes, la calidad es muy baja, muy inferior a la calidad que con la misma imagen se obtenía en la versión 6. Esto ocurre tanto con imágenes en tablas como con objetos dibujo dentro del propio mapa. Para solucionarlo he optado por convertir el logotipo a fuente de letra y el resultado es muy bueno. Este sistema tiene inconvenientes: unos es que en los S.O. operativos donde es “complicado” instalar nuevos fuentes de letras (p.e. android). Por eso tengo establecido un control para que si estoy usando dicho sistema, me muestro el objeto dibujo incluido en el mapa; otros inconveniente es que si lo imprimes en pdf con una impresora en pdf (p.e. dopdf) no incorpora correctamente las fuentes, si lo hace si imprimes en pdf desde la propia aplicación v7.
He probado también a utilizar un objeto de texto enriquecido utilizando una imagen descargada en la caché del cliente, pero también da problemas al generar los fichero pdf.

Hola gAb.

He estado haciendo pruebas con los márgenes (alineamiento) y en principio funciona correctamente. Ten en cuenta que la impresión puede venir afectada por el driver de la impresora (márgenes mínimos, ajustes de tamaños automáticos, etc …).

En cuanto a las imágenes tienen que salir perfectas si están bien dimensionadas. El editor de informes trabaja con pixeles, 100 pixeles = 1 pulgada, es decir, 100 pixeles van a ocupar 1 pulgada en la impresión. Sin embargo las impresoras láser van a imprimir con una resolución por defecto de 300ppp, así que sobredimensiona las imágenes para que en papel aparezcan con buen aspecto.

Cuando en el editor una imagen ocupa 2 pulgadas = 200pixeles, carga una imagen original de 600 pixeles y no tendrás problemas.

Saludos
Paco Satué

Hola,

Cambié la resolución de la imagen, la subí a 1184x754, pero aun así sigue habiendo pérdida. De hecho encuentro una diferencia, a menor sea la imagen, menor es la imagen resultante en el archivo exportado (por botón) no se redimensione bien, se reduce más que las otras.

Una cosa, la imagen la estoy mostrando en cun control objeto dibujo, con aspecto en proporcionar sin ampliar. Me interesa que sea un control porque la imagen no es fija, es necesario que se tome dinámicamente según la selección del usuario. Aunque también he probado con el dibujo estático, pero los resultados son iguales.

De todas, todas, el mejor resultado es exportado (por botón), aunque la impresión por proceso es bastante aceptable.
Ahora me surge otra duda. El problema de las diferencias de calidad, si se pudiera controlar, no habría problema, se haría siempre por proceso y listo, pero el problema surge si se quiere poner una previsualización del informe, en este caso, el usuario puede imprimir tanto por proceso, como por botón de impresión directa como por el de exportación, y creo recordar que en algún post leí que los controles del visor de formulario no se pueden controlar, ¿Es así? si se pudieran ocultar, quedaría solucionado el problema, aunque no sea de una manera muy ética.

Comprobaré todos los procesos y configuraciones involucradas en el informe por si es que lo tengo mal programado (por lo del tema del alineamiento) como dice Fran, que es lo más probable, o por lo menos ajustarlos lo máximo. Aunque el tema de la calidad no me parece que sea por programación, ya que ambos controles (botón imprimir y botón exportar) son controlados por la aplicación, no los podemos modificar. Aunque pensándolo bien, el alineamiento también se descuadra con estos dos botones.

Paco, dices que a ti te funciona correctamente, ¿En que versión lo probaste?, ¿Pudiera ser un bug de la versión 7.12.0.11769 ?(Probaré a instalar la 14 en otro pc y probar contra el vCloud)

Ya contaré los resultados

Saludos

Hola gAb.

He seguido haciendo pruebas con el editor de Informes y he llegado a las siguientes conclusiones. Espero aclaren un poco el tema.

  • Tamaño de impresión de los objetos.
    En el editor de informes, las reglas están en Pulgadas y los valores de las propiedades se deben poner en pixeles. Un poco absurdo y bastante incómodo, ya que nadie trabaja en pulgadas y menos en pixeles cuando estamos diseñando un impreso de factura o albarán.

Probando -> 100px = 1pulgada = 2,54cm aunque esto no aparece en el manual.

Esto vale para los tamaños de los controles, pero para los márgenes se sigue otra equivalencia:

Márgenes -> 50px = 1pulgada = 2,54cm (esto parece un fallo !!!)

  • Calidad del renderizado de las imágenes en Vista preliminar
    La calidad del renderizado de las imágenes es bastante mala y esto se aprecia en pantalla. El botón de imprimir desde la Vista Preliminar genera un informe de mala calidad, aunque mejora si usamos dibujos que tengan un tamaño original (en pixeles) del doble o triple que el control que las contiene (pero esto es poco óptimo en cloud).

  • Calidad de impresión en comando de proceso “Imprimir Informe” y generar PDF
    Aquí la calidad de impresión es perfecta. En la generación del PDF se explica porque usa el motor Postscript y en el comando de proceso, pues me imagino que usa el mismo motor.

El único problema que hay es que en este caso no funciona la propiedad Aspecto de dibujo = Proporcionar sin ampliar. Esto se debe a que la imagen se renderiza a muy alta resolución y por esta razón aparace tan pequeña, es decir, no se adapta al control.

Usar siempre Aspecto de dibujo = Proporcionar y los dibujos saldrán al tamaño deseado.

Está probado todo esto en varias impresoras (lasér y tinta) y tanto los márgenes como la calidad de impresión se comportan de la misma manera.

El plugin vReport todavía no lo he probado y no sé si aparecen los mismos problemas, pero desde luego el editor de informes necesita un buen repaso.
Añadiendo la posibilidad de imprimir dibujos SVG (vectoriales) se arreglarían todos los problemas de calidad de los dibujos impresos.
Está puesto como Idea … Poder guardar PNG’s transparentes y SVG en campos objeto para optimizar y aumentar la funcionalidad de la base de datos Velneo.

Pruébalo y nos cuentas.

Saludos
Paco Satué

Hola Paco,

Primero, pido disculpas por lo que he tardado en responder.

Una de mis dudas era si esto se había solucionado en versiones posteriores, como había dicho, yo tengo la 7.12.0.11769, pero veo que sigue existiendo.

A la conclusión que llego es que:
La impresión a través del botón de impresora que contiene el control es la que más se ajusta al diseño del informe, y a la vista preliminar, con los gráficos al tamaño definido, pero éstos son de muy pésima calidad.
La impresión por proceso guarda más o menos la relación de tamaño y alineación de texto cuadrándolo en el espacio definido, pero las imágenes las reduce x3, aunque con una calidad bastante aceptable.
La impresión a través del botón de imprimir a fichero que contiene el control da una calidad óptima, pero el tamaño de las imágenes se ve reducido x10, con lo que habría que subir el tamaño de éstas con la consiguiente sobrecarga para aplicaciones de gran volumen de datos.

En definitiva, la mejor opción es reajustar los márgenes e imprimir siempre por proceso. Pero eso crea otro inconveniente, al darle opción al usuario de la vista previa, va implícito que pueda usar los botones de imprimir y enviar a fichero del propio control, ya que estos no se pueden ocultar.

P.D.:
Subo de nuevo los archivos con los resultados de las impresiones por proceso, por botón imprimir y por botón exportar a fichero, adjunto una leyenda con los tipos de control y formatos de imagen usados. Subo los archivos en pdf y elimino todo el contenido a excepción de la cabecera de líneas para que se pueda comprobar el aspecto en cada una de las impresiones (son tal cual se imprimen. En la exportación a fichero se observa que el descuadre provoca que parte de los datos queden fuera del área de impresión)

boton-a-fichero.pdf (244 KB)

boton-impresora.pdf (79.7 KB)

proceso.pdf (59.5 KB)

Hola gAb.

El problema lo puse en conocimiento de Soporte y el 25 de febrero, una vez reconocido el mal funcionanmiento, quedó pendiente mientras lo examinan con más detenimiento.

Este fue el mensaje enviado a Soporte:

Adjunto 3 PFD's para que puedas comparar: Están generados con la impresora Adobe PDF que instala Adobe Acrobat XI standard Los resultados en papel son exactamente los mismos y en hasta 4 impresoras distintas (láser, tinta, láser color, ...) Abre los 3 PDF's, ponlos a zoom 200% y compara los detalles en el escudo y la imagen sup-izq. (el numero 6 pequeño y el texto Bertho Boman).

Conclusiones a las que he llegado:

  • informe_previsualizado.pdf
    las imágenes se imprimen a 96ppp, de allí la mala calidad de impresión
  • informe_porcomando.pdf
    las imágenes se imprimen a 150ppp. por esa razón mejora bastante la calidad
  • informe_afichero_pdf.pdf
    las imágenes se imprimen a 1200ppp. esta es la calidad que sale siempre, independientemente de la resolución elegida en pdf/ps

La resolución se ve editando la imagen del PDF con un programa, por ejem. photoshop.
La calidad aceptable, aunque un poco justa, sería la obtenida con la impresión por Comando de 150ppp.

Como ya te dije anteriormente, usa siempre Aspecto de dibujo = Proporcionar y los dibujos saldrán al tamaño deseado.
Para la alineación, pon los márgenes siempre a cero y diseña los informes dejando un espacio a la izquierda que representa el márgen (100 pixeles = 1 pulgada).

Mientras tanto, esperaremos la respuesta de Soporte.

Saludos
Paco Satué

Adjunto los ficheros enviados a Soporte.

Gracias Paco,
Esperaremos por la respuesta. Tampoco podemos hacer otra cosa, de momento, la impresión por código sigue siendo la mejor opción, y lo único, advertir al usuario de que no use los otros dos métodos, ya que si se ajusta la impresión para código, con cualquiera de los otros va a salir descuadrada. Ese es el otro tema, he usado tus indicaciones, pero aun así sigue habiendo diferencia de alineamiento entre un método y otro.

Bueno, por lo menos he conseguido que las imágenes tengan una resolución aceptable, poniéndolas en jpg que es el formato que menos espacio ocupa, y subiendo su tamaño en 10 veces el tamaño que quiero que tenga el control. Mientras sea para una sola imagen como es este caso, no hay problema, porque se carga en el inicio y ya no se vuelve a invocar, otra cosa sería si fuese imágenes de artículos.

Lo dicho, seamos pacientes…

Un Saludo
Gabriel

Otra buena aportación sería que se pudiera dar nombre al documento de forma dinámica para los casos de impresión por proceso y exportación a fichero. Cuando se imprimen los informes de uno en uno, pues bueno, les vas poniendo nombre, aunque sería mucho más rápido que cogieran el nombre dinámicamente, así tan solo sería pinchar imprimir y aceptar.
Cuando ya si se echa bastante de menos es cuando tienes una lista de 600 informes que quieres imprimir de una tirada y que tengas que ir renombrándolos de uno en uno.

Por ejemplo:
Me piden el listado de facturas del año xxxx, selecciono todas y ejecuto el proceso que las carga y las imprime. Si pudiera usar por ejemplo el número de factura para añadirlo al nombre del archivo de salida, ya no tendría que hacer ninguna otra operación.

Nota:
Lógicamente cuando se envía los documentos a la impresora física no hay problema, pero como personas sensibilizadas que somos, tratamos de ser “verdes” y no consumir papel, así que tendemos a generar documentos digitales (pdf por ej.), y aquí es donde está la piedra.

@gAb

Por ejemplo: Me piden el listado de facturas del año xxxx, selecciono todas y ejecuto el proceso que las carga y las imprime. Si pudiera usar por ejemplo el número de factura para añadirlo al nombre del archivo de salida, ya no tendría que hacer ninguna otra operación.

Si listas una serie de facturas, e imprimes por fichero cada una de ellas, puedes leer la ficha de la factura, el campo que desees, por ejemplo numero de factura, y en el nombre que das al fichero en la instruccion Exportar a fichero, le das el NUM_FACTURA+“.pdf”

Exportar informe a fichero

Cierto, no lo había visto, yo estaba empecinado en Imprimir informe(Factura@aplicacion-app,) y pretendía modificar el nombre del fichero en las propiedades del propio informe.

Aunque en este caso a mi me sigue planteando el mismo problema, se hace por medio de exportación, con lo que el archivo resultante si se alinea y cuadra para vista preliminar, a la hora de imprimir sale descuadrado, de hecho, la mitad del documento queda fuera de la hoja.
Una posible solución (aunque no ética), podría ser tener un informe para visualizar, y otro para imprimir por proceso. No lo he probado, voy a hacerlo así, a ver de que forma hay que ajustarlo para que no se quede fuera del área de impresión… ya comento los resultados…

Saludos

Vale, probando, acabo de darme cuenta de una cosa, (bastante importante, por lo menos para mi).

Si al informe se le dejan los Márgenes por defecto es cuando da los problemas de desalineado entre las tres formas de impresión (puede ser lógico ya que al exportar no estamos consultando propiedades de impresora ni dimensiones de papel), sin embargo, si se deja Margen = Ninguno, la impresión sale correctamente alineada en las tres formas de impresión.

Ahora queda el tema de la calidad y tamaño de las imágenes, que si tiene pinta de que sea más complicado…

Saludos

¿Y SVG?

¿Habría forma de incluir una imagen en SVG en el objeto informe? desde el propio vDevelop, sin tener que irnos al vReport o alguna otra astucia?

Hola gAb.

Publiqué la idea Nuevos tipos de campo de Dibujo PNG y SVG para incorporar nuevas funcionalidades a nuestras aplicaciones (despieces de artículos, transparencias, vectorización, animaciones, fuentes escalables, etc…).

Esto supondría tocar las tripas del gestor de bases de datos de Velneo, así que lo veo un poco utópico.

Saludos
Paco Satué

Hola Paco,

Imagino que eso será como todo, si la demanda de almacenamiento de imágenes fuese mayor, no les quedará más remedio que acometerlo ya que sería un impedimento para la venta de la plataforma. Afortunadamente, o por lo menos en mi caso, el 95% de las aplicaciones que uso, y el 99% de los datos que se manejan no son gráficos. Cierto que habrá quien lo tenga justo al contrario, pero ese es el quiz, es una demanda insignificante frente al porcentaje del uso de datos.

En ese caso habrá que recurrir a astucias y compatibilizar Velneo con otras herramientas para poder implementar lo que se quiere. Por ejemplo en el caso de los informes, habrá que exportar el informe en formato html, y las imágenes no almacenarlas en la aplicación, sino únicamente almacenar la ruta, que luego se insertará en el html. Aunque esto genera nuevos contratiempos, uno de ellos es el uso de herramientas externas y descentralización de los datos almacenados.

Pero bueno, será cuestión de aprender a convivir con lo que nos tocó en el reparto.

Saludos
Gabriel