[ 
https://issues.apache.org/jira/browse/PDFBOX-3396?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Fabio updated PDFBOX-3396:
--------------------------
    Attachment: Signed-Document-Image-Printed.pdf

> 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.1, 2.0.2
>         Environment: Java 8 - Spring Boot
>            Reporter: Fabio
>            Assignee: Maruan Sahyoun
>            Priority: Critical
>             Fix For: 2.0.4, 2.1.0
>
>         Attachments: Signed-Document-1.pdf, Signed-Document-2.pdf, 
> Signed-Document-3.flatten.20160912.pdf, Signed-Document-3.pdf, 
> Signed-Document-4.pdf, Signed-Document-Flattened-1.pdf, 
> Signed-Document-Flattened-2.pdf, Signed-Document-Flattened-3+4.pdf, 
> Signed-Document-Flattened.pdf, Signed-Document-Image-Printed.pdf, 
> Signed-Document.pdf
>
>
> 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):
> {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);
> .
> .
> .
> {code}                
> 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:
> {code}
>        pfs.getAcroForm().flatten();
> {code}
> 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: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to