PERMISO Y EXENCIÓN DE RESPONSABILIDAD En este sitio web aparecen programas que pueden ser descargados. Estos programas están sujetos a derechos de reproducción y su dueño reclama derecho exclusivo sobre estos programas. El propietario de los programas que usted se descarga en este sitio web puede aparecer indicado en los ficheros READ-ME o dentro del código fuente. Por esta nota se permite el uso, copia, modificación y distribución de estos programas y su código fuente para uso no comercial y sin pago alguno, siempre que el dueño de los derechos u otras personas que contribuyan no se usen con fines publicitarios sin un previo permiso por escrito. El dueño de los derechos y las personas que han contribuido no garantizan que estos programas sean apropiados para uso alguno. Estos programas se distribuyen "tal cual" sin garantía explícita o implícita, incluyendo sin limitación las garantías implícitas de comerciabilidad y adecuación a un uso especifico. En ningún caso, el autor y los que han contribuido a estos programas, serán responsables de ningún daño directo, indirecto, incidental, especial, punitivo o consecuente causados por los programas (incluyendo sin limitación la pérdida de uso, datos, ganancias o interrupción de negocios) sea cual fuera su causa y bajo cualquier teoría de responsabilidad. AcceptCancel
Este ejemplo tiene como objetivo firmar un documento PDF mediante el servicio de firma de TrustedX. Para la comprensión de este ejemplo se recomienda haber entendido previamente el ejemplo Generación de una firma CMS/PKCS#7.
Para poder probar este ejemplo se debe descargar el archivo sampleAxis12.zip y seguir las instrucciones que se encuentran en Configuración del entorno.
Al igual que en el ejemplo de Generación de una firma CMS/PKCS#7 para realizar una petición de firma se debe utilizar un objeto SignRequest, pero en este caso el perfil de la firma será PDF.
SignRequest sr = new SignRequest();
sr.setProfile(new URI(PROF_SIGN_PDF));
En este ejemplo se debe realizar la firma de un archivo PDF, demo-file.pdf. En la petición los datos se incluiran codificados en Base64 usando el metodo setBase64Data() del objeto Document.
InputDocuments idoc = new InputDocuments();
Document doc = new Document();
Base64Data b64data = new Base64Data();
b64data.set_value(Util.readBinaryFile(path_in + signname));
b64data.setMimeType("application/pdf");
doc.setBase64Data(b64data);
idoc.setDocument(doc);
sr.setInputDocuments(idoc);
En el caso específico de las firmas PDF, se pueden indicar una serie de propiedades características que deberá tener la firma, en este ejemplo se definen unos atributos como el método de validación de la firma utilizado por AdobeReader (validationMethod), el lugar de emplazamiento de la apariencia de la firma signaturePosition, y el tipo de firma utilizado signatureAlg. Estas propiedades se incluyen a partir de un string definido en las constantes del programa y se incluye en un objeto Properties de Axis.
Así se procede al envío de la petición invocando la operación sign() y se recoge la respuesta en un objeto SignResponse.
SignResponse srs = bindingDs.sign(sr);
Después de ejecutar el ejemplo se obtiene una respuesta como la siguiente y un archivo con la firma.
File saved successfully on: data/output/demo-file-signed.pdf
|