You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2016/07/04 06:28:11 UTC

[jira] [Commented] (PDFBOX-3396) flattaning AcroForm with visible sign field ETSI.CAdES.detached

    [ https://issues.apache.org/jira/browse/PDFBOX-3396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15360892#comment-15360892 ] 

ASF subversion and git services commented on PDFBOX-3396:
---------------------------------------------------------

Commit 1751213 from [~msahyoun] in branch 'pdfbox/trunk'
[ https://svn.apache.org/r1751213 ]

PDFBOX-3396: don't add a transformation if there is a XObject

> 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
>            Priority: Critical
>         Attachments: Signed-Document-Flattened.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-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org