[
https://issues.apache.org/jira/browse/PDFBOX-3396?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maruan Sahyoun reassigned PDFBOX-3396:
--------------------------------------
Assignee: Maruan Sahyoun
> 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.3, 2.1.0
>
> Attachments: Signed-Document-1.pdf, Signed-Document-2.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.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: [email protected]
For additional commands, e-mail: [email protected]