ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
247 stars 120 forks source link

ver 1.8.0 no admite imagen con transparencias para la firma, la 1.7.1 sí #332

Open gmolledaj opened 1 year ago

gmolledaj commented 1 year ago

Con LinuxMint 21.1, java 11, si instalo autofirma 1.7.1 puedo añadir mi firma de un .png con transparencias, en cambio con autofirma 1.8.0 me sale un mensaje de que no admite transparencias y no sale el gráfico sobre la firma en texto.

gmolledaj commented 1 year ago

Añado que la firma aparece bien en el cuadro de previsualización, incluso después de dar el aviso de que las transparencias no se admiten, si bien al final no sale la imagen usada con transparencias en la terminal desde la que he ejecutado el programa autofirma aparece la etiqueta ", signatureRubricImage=," sin nada entre = y la coma al contrario de si se usa una imagen opaca sin transparencias como un rectángulo rojo: ", signatureRubricImage=/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAUADIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDhaKKK+dP2QKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/2Q==, " En la versión 1.7.1 sí sale bien la imagen con transparencias dentro de la etiqueta signatureRubricImage

Gamuci commented 1 year ago

Hola, @gmolledaj.

AutoFirma 1.8.0 únicamente advierte de que las transparencias pueden no funcionar, pero más allá de eso no debería introducir cambios sobre cómo se procesan.

Creo que tu problema se debe a una sucesión de catastróficas desdichas. AutoFirma 1.8 introduce el que la imagen de rúbrica se pueda indicar mediante una ruta local en lugar de mediante un Base 64. Es decir, que podrías hacer algo como: signatureRubricImage=/home/usuario/afirma/imagen.png

El problema es que el Base 64 de tu imagen empieza por el carácter '/' y eso debe estar confundiendo a la aplicación. Supongo que tu imagen del rectángulo rojo empieza distinto y por eso funciona. Como solución rápida, prueba a guardar la imagen en una ruta local y utiliza la ruta absoluta del fichero para referenciarla. Eso reducirá también el tamaño del comando para la invocación.

gmolledaj commented 1 year ago

AutoFirma 1.8.0 únicamente advierte de que las transparencias pueden no funcionar, pero más allá de eso no debería introducir cambios sobre cómo se procesan.

Creo que tu problema se debe a una sucesión de catastróficas desdichas.

No, con otra imagen png creada para probar tampoco la mete. No es por empezar por / ni algo así, no va nunca, si a ti te va entonces será por algún bug diferente en alguna versión de alguna librería, yo uso LinuxMint 21.1 XFCE basado en XUbuntu 22.04.

AutoFirma 1.8 introduce el que la imagen de rúbrica se pueda indicar mediante una ruta local en lugar de mediante un Base 64. Es decir, que podrías hacer algo como: signatureRubricImage=/home/usuario/afirma/imagen.png

No sé, yo llamo a autofirma con su interfaz gráfica y en el proceso de ventanas me pregunta la ruta con el botón examinar y sale la ruta ABSOLUTA a mi .png. En cuando la cambio avisa de nuevo sobre que no permite transparencias aunque sale bien en la previsualización. Finalmente en el pdf creado *_signed.pdf no sale la imagen sobre la firma (solo el texto de la firma).

prueba a guardar la imagen en una ruta local y utiliza la ruta absoluta del fichero para referenciarla. Eso reducirá también el tamaño del comando para la invocación.

He puesto la imagen en la ruta /home/miusuario/aaaa.png para que no sea problema de la longitud del comando. No es esa la razón tampoco. Simplemente no acepta transparencias, algo que en una firma es fundamental.

Baltasarq commented 1 year ago

Tengo exactamente el mismo problema. La imagen de la firma ha dejado de aparecer en las firmas en esta nueva versión, cuando antes aparecía correctamente.

Entiendo que antes la firma se embebía como base64, con lo cual formaba parte de un todo... ¿por qué cambiar esto?

Utilizo Manjaro Linux actualizado. kernel 6.3.

pr-apes commented 1 year ago

En la versión 1.8.2 (en Windows), además de la advertencia, la imagen con transparencias no se muestra.

Esta imagen directamente impide la firma (convertida con pngquant --strip de la siguiente):

ss

Esta imagen permite la firma, pero luego no se muestra en el documento PDF:

megila

Por cierto, el mensaje suena raro. Yo diría que «no se soporta» es «no se aguanta» (en el español [al menos peninsular]):

aguante

Creo que sería mejor decir «no funciona el uso de imágenes con transparencias».

Muchas gracias.

Baltasarq commented 1 year ago

Muy bueno este comentario, está claro que no es un problema del sistema operativo (ya tenemos el fallo en Windows y en Linux), sino de la nueva funcionalidad que han añadido en cuanto a no embeber la imagen utilizando Base64, sino incluir el PATH.

Por cierto, el mensaje suena raro. Yo diría que «no se soporta» es «no se aguanta»

Lo de "no se soporta 'x'" es jerga informática habitual, probablemente sí sería interesante cambiarlo por "no funciona", efectivamente.