Hi,
> Am 26.05.2016 um 14:26 schrieb Andrea Canu <[email protected]>: > > Hi all. > > I'm tying to rewrite my code in order to use the PDFBox in place of the > current library. > First of all, thank you for the great work you are doing! > > > I'm trying to manage signatures of a PDFdocuments and the method that I use > to obtain the Signatures' list from the PDDocument is: > > public List<PDSignature> *getSignatureDictionaries *() throws IOException > > I'm in trouble with a specific signed PDF document because this method > returns an empty signature list. > > From the PDFBox migration > <https://pdfbox.apache.org/2.0/migration.html>documentation > I've read that for PDFBox 2.0.0 and the PDNonTerminalField class the > preferred way to iterate through the fields is: > > PDAcroForm form;...for (PDField field : form.getFieldTree()){ > ... (do something)} > > > Looking inside on the *getSignatureDictionaries *'s code I was very > surprised to see that the AcroField was iterated with this code: > > public List<PDSignatureField> *getSignatureFields*() throws IOException > { > List<PDSignatureField> fields = new ArrayList<PDSignatureField>(); > PDAcroForm acroForm = getDocumentCatalog().getAcroForm(); > if (acroForm != null) > { > // fixme: non-terminal fields are ignored, could have > descendant signatures > for (PDField field : *acroForm*.*getFields*()) > { > if (field instanceof PDSignatureField) > { > fields.add((PDSignatureField)field); > } > } > } > return fields; > } > > > I modified that *getSignatureFields *method replecing the > *acroForm.getFields()* call with the suggested *acroForm.getFieldTree()* > and all the signatures are revealed. You are correct that the code only resturns top level signature fields and not ones which are descendants. I've created https://issues.apache.org/jira/browse/PDFBOX-3364 to imrpove that. BR Maruan > > The question is: > Is that a forgetfulness of the 2.0 migration or is my workaround incorrect > to solve that issue? > > > Kind regard > > Andrea --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

