You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Nikola Radosevic (JIRA)" <ji...@apache.org> on 2017/06/30 10:37:00 UTC

[jira] [Created] (PDFBOX-3848) Get the exact original PDF that was signed(without signature fields)

Nikola Radosevic created PDFBOX-3848:
----------------------------------------

             Summary: Get the exact original PDF that was signed(without signature fields)
                 Key: PDFBOX-3848
                 URL: https://issues.apache.org/jira/browse/PDFBOX-3848
             Project: PDFBox
          Issue Type: Bug
          Components: AcroForm, Signing
    Affects Versions: 2.0.6
            Reporter: Nikola Radosevic
         Attachments: Example.pdf, Example_signed_final.pdf, Example_signed_orig.pdf, Example_Signed.pdf

I am trying to get the original pdf from the signed pdf.

I am able to remove the signature using doc.getSignatureDictionaries().get(0).getSignedContent(signedPDF);

However, the signature field stays.

However, when I try to remove the signature fields using the following code:

PDDocument pdDoc = PDDocument.load(origPDF);
		PDDocumentCatalog catalog = pdDoc.getDocumentCatalog();
	    PDAcroForm form = catalog.getAcroForm();
	    List<PDField> acroFormFields = form.getFields();
	    for (PDField field: acroFormFields) {
	        if (field.getFieldType().equalsIgnoreCase("Sig")) {
	        	System.out.println("START removing Sign Flags");
	        	field.setReadOnly(true);
	        	field.setRequired(false);
	        	field.setNoExport(true);
	     	        	
	        	System.out.println("END removing Sign Flags");
	            
	        	System.out.println("START flattenning field");	        
	        	field.getAcroForm().flatten();
	        	field.getAcroForm().refreshAppearances();
	            System.out.println("END flattenning field");
	            
	        	//field.getAcroForm().refreshAppearances();
	        }

The signature field is removed, but the image that was used for visible signature, somehow, magically appear. (The document that I load here is the one that has signature removed using origPDF = doc.getSignatureDictionaries().get(0).getSignedContent(signedPDF); 

See the attached files:
Example.pdf (Original file)
Example_Signed.pdf (Signed File)
Example_Signed_orig.pdf (after removing the signature)
Example_Signed_final.pdf (after flattening the Example_Signed_orig.pdf) 

See the stackoverflow post for more details:

https://stackoverflow.com/questions/44843095/verifying-pdf-signature-in-java-using-bouncy-castle-and-pdfbox



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org