A mí también me ocurre el problema de la mala codificación de los archivos pdf al firmarlos. El problema debe estar en la firma del archivo previamente codificado en base64. Al hacer el decode, con algunos decodificadores da error directamente porque encuentra caracteres no codificables, y con otros, no da error el proceso de decodificación, pero se genera un pdf mal formado y por eso termina dando el error que mencionais "java.io.IOException: PDF header signature not found." Si intentas abrir el archivo, Adobe también se queja. Con la version 2.0.5 esto no me ocurre, por lo que entiendo que es un problema de la versión 2.1.
No soy una programadora experta de java, pero espero que este mensaje os sirva de algo. De: Ricardo Borillo <[email protected]> Para: Llista de correu per al CryptoApplet <[email protected]> Fecha: 23/04/2010 14:50 Asunto: Re: [CryptoApplet] (sin asunto) Enviado por: [email protected] Hola Eduardo, Llamando a esa URL a mano, ¿Podeis recuperar el PDF correctamente? En el JavaScript que llama a CryptoApplet, ¿Qué teneis en la llamada a "setInputDataEncoding"? ¿PLAIN o BASE64? ¿Puedes poner la traza entera del error que ves por consola? --- Salut, ==================================== Ricardo Borillo Domenech http://xml-utils.com / http://twitter.com/borillo 2010/4/23 Eduardo Pardo <[email protected]>: > Hola, > > el codigo que he hemos desarrollado para recoger el pdf del sistema de > ficheros es el siguiente: > > ServletOutputStream stream = null; > BufferedInputStream buf = null; > try { > stream = response.getOutputStream(); > File pdf = new File("\\tmp\\resolucionTemporal.pdf"); > > response.setContentType("application/pdf"); > response.addHeader("Content-Disposition", "attachment; > filename=resolucionTemporal.pdf"); > response.setContentLength((int) pdf.length()); > > FileInputStream input = new FileInputStream(pdf); > buf = new BufferedInputStream(input); > int readBytes = 0; > > while ((readBytes = buf.read()) != -1) > stream.write(readBytes); > > } catch (IOException ioe) { > throw new ServletException(ioe.getMessage()); > } finally { > if (stream != null) > stream.close(); > if (buf != null) > buf.close(); > } > > Es decir, cogemos el pdf y lo pasamos por el response para que cryptoapplet > lo firme, pues el resultado es un error al hacer la firma, concretamente una > excepcion: > > java.io.IOException: PDF header signature not found. > > Muchas gracias. > > Saludos. > ________________________________ > De: [email protected] en nombre de Ricardo Borillo > Enviado el: vie 23/04/2010 13:37 > Para: Llista de correu per al CryptoApplet > Asunto: Re: [CryptoApplet] (sin asunto) > > Hola Eduardo, > > No te queda otra que hacer que CryptoApplet lea de una URL que sea > capaz de leer el PDF del sistema de ficheros y luego se lo haga llegar > como respuesta de la petición. > > Así, las URLs para CryptoApplet quedarían de la siguiente forma: > > URL entrada: http://<url que llee del sistema de ficheros y sirve el pdf> > URL salida: http://<url que recoge el resultado de la firma y lo almacena> > > --- > Salut, > ==================================== > Ricardo Borillo Domenech > http://xml-utils.com / http://twitter.com/borillo > > > > 2010/4/23 Eduardo Pardo <[email protected]>: >> Hola, >> >> estoy firmando un pdf a traves de la llamada "signDataUrlToUrl". El >> problema >> que tengo, es que el fichero pdf se encuentra en el servidor en una >> carpeta >> temporal del sistema de archivos. >> >> ¿Como puedo acceder a ella?. Valdria la posibilidad de que el parametro de >> entrada sea la llamada a un servlet y sea este quien recoja el pdf. ¿Lo >> recogeria cryptoapplet como el fichero de entrada? >> >> >> Muchas gracias. >> >> Saludos. >> >> Eduardo Pardo Guillén >>> >>> Responsable Técnico de Producto >>> >>> email: [email protected] >>> >>> Teléfono: 963939916 >>> >>> TISSAT S.A. >>> >>> Av. Leonardo da Vinci 5 >>> >>> 46980 Paterna >> >> >> >> ________________________________ >> Nota Legal: Este correo electrónico puede contener información >> estrictamente >> confidencial y es de uso exclusivo del destinatario, quedando prohibida a >> cualquier otra persona su revelación, copia, distribución, o el ejercicio >> de >> cualquier acción relativa a su contenido. Si ha recibido este correo >> electrónico por error, por favor, conteste al remitente, y posteriormente >> proceda a borrarlo de su sistema. Gracias por su colaboración. >> >> Confidentiality notice: This e-mail message may contain confidential >> and/or >> legally privileged information and is solely for the attention and use of >> the intended recipient. Any disclosure, copying, distribution or the >> taking >> of any action with relation to the contents of this e-mail by any other >> person is strictly prohibited. If you believe that this e-mail has been >> mistakenly sent to you, >> please reply to the sender from whom you received the message in error and >> then delete the original e-mail from your system. Thank you for your >> co-operation. >> >> ________________________________ >> >> _______________________________________________ >> CryptoApplet mailing list >> [email protected] >> http://llistes.uji.es/mailman/listinfo/cryptoapplet >> >> > _______________________________________________ > CryptoApplet mailing list > [email protected] > http://llistes.uji.es/mailman/listinfo/cryptoapplet > > ________________________________ > Nota Legal: Este correo electrónico puede contener información estrictamente > confidencial y es de uso exclusivo del destinatario, quedando prohibida a > cualquier otra persona su revelación, copia, distribución, o el ejercicio de > cualquier acción relativa a su contenido. Si ha recibido este correo > electrónico por error, por favor, conteste al remitente, y posteriormente > proceda a borrarlo de su sistema. Gracias por su colaboración. > > Confidentiality notice: This e-mail message may contain confidential and/or > legally privileged information and is solely for the attention and use of > the intended recipient. Any disclosure, copying, distribution or the taking > of any action with relation to the contents of this e-mail by any other > person is strictly prohibited. If you believe that this e-mail has been > mistakenly sent to you, > please reply to the sender from whom you received the message in error and > then delete the original e-mail from your system. Thank you for your > co-operation. > > ________________________________ > > _______________________________________________ > CryptoApplet mailing list > [email protected] > http://llistes.uji.es/mailman/listinfo/cryptoapplet > > _______________________________________________ CryptoApplet mailing list [email protected] http://llistes.uji.es/mailman/listinfo/cryptoapplet ADVERTENCIA Este mensaje y/o sus anexos, pueden contener información personal y confidencial cuyo uso, reproducción o distribución no autorizados están legalmente prohibidos. Por lo tanto, si Vd. no fuera su destinatario y, erróneamente, lo hubiera recibido, le rogamos que informe al remitente y lo borre de inmediato. En cumplimiento de la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal le informamos de que su dirección de correo electrónico, así como sus datos personales y de empresa pasarán a formar parte de nuestro fichero de Gestión, y serán tratados con la única finalidad de mantenimiento de la relación adquirida con usted. Los datos personales que existen en nuestro poder están protegidos por nuestra Política de Seguridad, y no serán compartidos con ninguna otra empresa. Usted puede ejercitar los derechos de acceso, rectificación, cancelación y oposición dirigiéndose por escrito a la dirección arriba indicada. This e-mail and its attachments may include confidential personal information which may be protected by any legal rules and cannot be used, copied, distributed or disclosed to any person without authorisation. If you are not the intended recipient and have received this e-mail by mistake, please advise the sender and erase it. In compliance with the Spanish Organic Act 15/1999 on Personal Data Protection, we hereby inform you that your email address, as well as your personal and business information, will be included in our Management files and used solely for purposes corresponding to our commercial relationship. All personal data in our possession is protected by our Data Safety Policy and thus shall not be released to any other third party whatsoever. You may exercise your right to access, rectify, cancel and contest by writing to the address provided above.
_______________________________________________ CryptoApplet mailing list [email protected] http://llistes.uji.es/mailman/listinfo/cryptoapplet
