Fabio created PDFBOX-3396:
-----------------------------

             Summary: flattaning AcroForm with visible sign field 
ETSI.CAdES.detached
                 Key: PDFBOX-3396
                 URL: https://issues.apache.org/jira/browse/PDFBOX-3396
             Project: PDFBox
          Issue Type: Bug
          Components: AcroForm
    Affects Versions: 2.0.2, 2.0.1
         Environment: Java 8 - Spring Boot
            Reporter: Fabio
            Priority: Critical


Hallo,
I've got a problem with the flattaning function of AcroForm class of a 
PDSignatureField. I've a signed pdf document with ETSI.CAdES.detached visible 
image at bottom of the file. I want to flattan the PDSignatureField of the sign 
to eliminate sign cryptography element of the field and to embad the sign 
marker immage of the sign, in the same position of the original immage that is 
a part of the marker sign ETSI.CAdES.detached. I try this way(pseudo code 
similare to real code):

PDDocument pdDoc = PDDocument.load("signed-document.pdf");

PDDocumentCatalog pdCatalog = pdDoc.getDocumentCatalog();
PDAcroForm acroForm = pdCatalog.getAcroForm();

List<PDField> fields = acroForm.getFields();

fields.stream().filter(pf -> 
pf.getFieldType().toLowerCase().contains("sig")).forEach(pf -> {
try {
      PDSignatureField pfs = ((PDSignatureField)(pf));
      
       log.info("START remove Sign Flags");
       pfs.setReadOnly(true);
       pfs.setRequired(false);
       pfs.setNoExport(true);
       log.info("END remove Sign Flags");
       
       log.info("START flatten field");
       pfs.getAcroForm().flatten();
       pfs.getAcroForm().refreshAppearances();
       log.info("END flatten field");
                                        
} catch (Exception ex) {
   log.error("flattenFile --> Error: " + ex.getMessage());
   throw new RuntimeException(ex);
}
});

ByteArrayOutputStream baos = new ByteArrayOutputStream();
pdDoc.save(baos);
.
.
.
                                                
At the and of the process, the pdf file in output, has no sign cryptography 
element, but the visible marker immage of the sign is placed in a wrong 
position, on top of sign above paragraph of the document and not in original 
position of the signed marker immage. That's happen when i call the following 
method:

       pfs.getAcroForm().flatten();

In other words, the flattened pdf of the original signed pdf, has in a correct 
way no more sign inside but, the immage of the ETSI.CAdES.detached signe is 
embedded in a wrong position, over the text of the nearest above paragraph of 
the pdf document.

My questions are: 

1-My way, is the correct way to flattan a signed ETSI.CAdES.detached file?

2-Is there a method to remove CadES/PadES sign with a official visible marker 
image and, embad immage in the acctual original position in pdf file?

Thank you for your support and sorry for my poor English.

Best regards,
Fabio Evangelista




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to