AnsweredAssumed Answered

Firmar pdf con itext

Question asked by mrey on Oct 9, 2009
Latest reply on Sep 8, 2012 by patricioc
Hola a todos.

A ver si alguien que haya trabajado con itext me puede hechar una mano

Estoy intentando firmar un pdf y añadirle metadatos, pero no se que es lo que le tengo que pasar al PDFReader para que coja el documento, ¿Un nodeRef?¿Un nodo?
Solo acepta String y probe de varias maneras. Alguna idea¿?¿?¿ Muchas gracias


Este es el codigo que añade la firma
Node nodo = new Node(actionedUponNodeRef);
            String nombreDoc = nodo.toString();
            
            File archivoFirma = new File(nombreDoc);
            logger.info("Entra en la firma del doc");
            KeyStore ks = KeyStore.getInstance("pkcs12");
            logger.info("Segundo paso para leer doc");
            
            ks.load(new FileInputStream("C:/Luis.pfx"), "martin".toCharArray());
            logger.info("Tercer paso para leer doc");
            String alias = (String)ks.aliases().nextElement();
            logger.info("Cuarto paso para leer doc");
            PrivateKey key = (PrivateKey)ks.getKey(alias, "martin".toCharArray());
            logger.info("Quinto paso para leer doc");
            Certificate[] chain = ks.getCertificateChain(alias);
            logger.info("Sexto paso para leer doc");
            PdfReader reader = new PdfReader();
            logger.info("Leyo el documento");
            FileOutputStream fout = new FileOutputStream(archivoFirma);
            logger.info("Creo el documento auxiliar");
            PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
            PdfSignatureAppearance sap = stp.getSignatureAppearance();
            sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
            sap.setCertificationLevel(PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED);

            sap.setReason("Martin es el autor");
            sap.setLocation("Santiago");
            // comment next line to have an invisible signature
            //sap.setVisibleSignature(new Rectangle(100, 100, 200, 200), 1, null);
            stp.close();

Pero no pasa de aqui:

PdfReader reader = new PdfReader();



Muchas gracias y un saludo

Outcomes