Rortar imágenes con vReport


([N4] Infortic) #1

Una pregunta simple.

He hecho una integración con UPS en la que el webservice me devuelve las etiquetas en GIF, al recibirlas las guardo en una tabla de etiquetas en un campo objeto dibujo.

Para imprimirlas tengo un report de vReport con un control imagen.

Quiero algo tan simple como rotar la imagen 90 grados y no veo cómo hacerlo, el control imagen no se puede rotar.

He probado a poner un control HTML con la imagen incrustada en base 64 y usar el transform rotate, ese código funciona en el navegador pero no en vReport, lo ignora y no rota la imagen.

La clase VImage tampoco veo que me proporcione ningún método para rotar.

¿ A alguien se le ocurre cómo hacerlo ?, porque es algo muy sencillo pero no veo como hacerlo.


([N3] pacosatu) #2

Hola Infortic.

Echa un vistazo a la herramienta gráfica por línea de comandos ImageMagick®.

Saludos
Paco Satué


([N4] Infortic) #3

Gracias Paco.

Lo miraré, el problema es que tiene clientes mac y clientes windows asi que me toca ponerlo en el servidor windows, mandarle los ficheros por SDV que el server los convierta y recogerlos…

Lo simple se complica, jejejeje.

Un saludo.


([N4] Infortic) #4

Estoy probando con los binarios de osx y de windows.

Si lo ejecuto desde terminal funciona.

Si lo ejecuto desde velneo no funciona ni con lanzar aplicación ni con ejecutar comando del sistema.

Ni con rutas absolutas ni con rutas relativas.

Es algo tan simple como:

convert -rotate 90 “/Users/sergio/Velneo/cacherun/192.168.0.20/etiqueta.png” “/Users/sergio/Velneo/cacherun/192.168.0.20/etiqueta.png”

En windows funciona, en mac desde línea de comandos funciona, en mac desde velneo no hace nada.

Alguien que use mac… hay que tener algo en cuenta para ejecutar el comando?


([N1] wikan) #5

Yo no complicaría en hacerlo en los clientes.
Tendrías que estar llevando los binarios a cada cliente y cada plataforma.

Haz la descarga del gif en el servidor y ahí rotas


([N4] Infortic) #6

Para descargarlas directamente en el server tenía que cambiar y reorganizar muchos procesos.

He optado por descargarlas a local y en lugar de rotarlas ahí, subirlas por SDV, rotarlas en server y descargarlas otra vez, vamos… bastante cutre pero funciona en windows y mac.

Me da rabia porque no entiendo que no funcione con mac, el binario me da igual, en mac con un “brew install imagemagick” se queda funcionando las librerías, no hace falta incluir el binario como archivo adjunto.


([N1] wikan) #7

Consulta con soporte entonces por que no funciona ejecutar comando del sistema.
Quizás algún tema de permisos.


([N3] pacosatu) #8

Hola Infortic.

Puedes usar también un control Visor HTML de Velneo para ejecutar un código html/javascript que gire la imagen 90 grados.
Usarías el Canvas de HTML5 al que aplicas una transformación.
El resultado lo obtienes en base64 y lo pasas a Velneo de la forma habitual.

Tienes un ejemplo (Rotar Imagen) en el apartado de “Editor de código HTML” de los ejercicios en vatp://pruebas:pruebas@v7cloud6.velneo.com:8894/0PS_Varios_iapp.

La pega es que no funciona con imágenes GIF, solo con bmp, jpeg y png.
Lo que no sé es si el Visor HTML funciona en todos los Mac ???.

Saludos
Paco Satué


([N4] Infortic) #9

Lo intenté al principio con un transform por css.

El problema es son etiquetas para imprimir y no sabía como imprimirlo desde el visor HTML (no se si hay forma).

Así que decidí meter ese código HTML en un control HTML de un report de vReport.

No funciona, no aplica la transformación.

El código HTML en navegador lo giraba bien, pero vReport pasaba olímpicamente…


([N1] wikan) #10

El componente imagen tiene un opción abajo de, Opciones html.
No sé si por ahí lo podrás conseguir.

De todas formas, me dio por entrar en la página del componente y está actualizado a la versión 21. Creo que con opciones interesantes, en los ejemplos se ven gráficos, no bonitos pero algo se ve. Incluso una nueva salida de informe, xls/html


([N3] pacosatu) #11

Hola Infortic.

El control HTML del VReport está limitado al soporte que proporciona el control de Texto enriquecido de QT.

Como verás no existe la propiedad CSS Transform.

Por eso debes hacerlo con el Visor HTML de Velneo que soporta HTML5 y CSS más completo, o usar la herramienta externa.

Lo mejor es que tengas 2 campos de dibujo o en base64, uno con la imagen GIF original y otro con la imagen PNG girada 90 grados.

Saludos
Paco Satué


([N4] Infortic) #12

Gracias Paco.

Lo he hecho así, con 2 cambpos dibujo y girandolo en 3er plano con imagemagick, no he podido de otra forma.

Un saludo.


([N3] pacosatu) #13

Hola Infortic.

Yo creo que es la solución más efectiva y además multiplataforma.
Ten en cuenta, sin embargo, que las imágenes que guardas en los campos Dibujo se convierten a formato jpeg, perdiendo la transparencia que pudieran tener.

Saludos
Paco Satué