[
https://issues.apache.org/jira/browse/PDFBOX-5344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17460776#comment-17460776
]
Laurence Urbain commented on PDFBOX-5344:
-----------------------------------------
Hi [~tilman],
Indeed, when I use the new saveIncremental method to pass the PDSignatureField,
the signature works (and the document signature looks valid). Although it does
not feel right to use PDDocument.addSignature() to perform operations on some
objects we may not know about, and then retrieve the objects we assume needs
to be updated afterwards...
Besides, I am not in control of the code who calls PDDocument.addSignature().
To give you some context, we work with the dss library for all our signature
operations. Initially, I opened a DSS ticket:
[https://ec.europa.eu/cefdigital/tracker/browse/DSS-2653].
Changing the saveIncremental logic would probably have a significant impact, I
am not sure they would want to go for it anytime soon (You can correct me if I
am wrong [~mkl]).
We have a strong requirement to support nested fields, do you know if there is
any plan in the future to work on PDDocument.addSignature() ? We would really
prefer to avoid forking libraries.
Thanks for you help
> Adding a signature on nested fields has no effect
> -------------------------------------------------
>
> Key: PDFBOX-5344
> URL: https://issues.apache.org/jira/browse/PDFBOX-5344
> Project: PDFBox
> Issue Type: Bug
> Components: Signing
> Affects Versions: 2.0.24
> Reporter: Laurence Urbain
> Priority: Major
> Attachments: nested-signature-field.pdf
>
>
> Hi,
> I am not able add a signature to a document if the signature field is nested
> (the signature field is not a direct child of the acro form).
> When I call the method PDDocument.addSignature(), the signature field is
> properly marked as "needs to be updated" but not its parents.
> As a result, when the incremental save is done, the changes are lost.
> To be able to add the signature for such field, all the parent fields in the
> hierachy should also be marked as "needs to be updated".
> Please find a sample file attached.
> Here is the code snippet to build it:
> {code:java}
> final PDDocument pdDocument = new PDDocument();
> final PDPage page = new PDPage();
> pdDocument.addPage(page);
> PDAcroForm form = new PDAcroForm(pdDocument);
> pdDocument.getDocumentCatalog().setAcroForm(form);
> final PDNonTerminalField level1 = new PDNonTerminalField(form);
> level1.setPartialName("level1");
> form.getFields().add(level1);
> final PDNonTerminalField level2 = new PDNonTerminalField(form);
> level2.setPartialName("level2");
> level1.setChildren(List.of(level2));
> final PDSignatureField signatureField = new PDSignatureField(form);
> signatureField.setPartialName("field1");
> PDAnnotationWidget widget = signatureField.getWidgets().get(0);
> widget.setRectangle(new PDRectangle(50, 700, 200, 20));
> widget.setPage(page);
> widget.setPrinted(true);
> page.getAnnotations().add(widget);
> level2.setChildren(List.of(signatureField)); {code}
> Thanks
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]