Hi Tilman,

Thank you so much for your answer.
I cannot send you the pdf as it contains our customer data.

Could you please tell me how I can read these field annotations in java?

Also many times we see a form with PDF reader and when doing PDAcroForm acroForm = docCatalog.getAcroForm(), acroForm is null. How can this happen?

Regards,
Bruno.


On 2023/06/14 02:50:30 Tilman Hausherr wrote:
> Hi,
> Please share the PDF. (upload to sharehoster)
> I also recommend to use getFieldTree() instead of getFields() but your
> approach is also correct. Maybe your file has only field annotations and
> not the actual fields, this happens sometimes.
> Tilman
>
> On 14.06.2023 01:49, Bruno Jullien wrote:
> > Hi,
> >
> > I am trying to get the form field names and values of some signed PDF
> > (tried with several PDF files) and I cannot see them when using
> > getChildren() below.
> > I only see the signature field!!!
> >
> > this is the OUTPUT i get from the code below:
> > FullyQualifiedName: ENVELOPEID_47C2241C2E9B492B892DA48C8ED1BE01
> > Value:
> > org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature@d041cf
> >
> > Any suggestion is welcome on how to access the form fields.
> >
> > Here is my code:
> > =========================
> > import java.io.File;
> > import java.io.IOException;
> > import java.util.List;
> >
> > import org.apache.pdfbox.pdmodel.PDDocument;
> > import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
> > import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
> > import org.apache.pdfbox.pdmodel.interactive.form.PDField;
> > import org.apache.pdfbox.pdmodel.interactive.form.PDNonTerminalField;
> >
> > public class PdfboxGetFormFields {
> >     public static void main(String[] args) throws IOException {
> >         PDDocument document = PDDocument.load(new File("myfile.pdf"));
> >         PDDocumentCatalog docCatalog = document.getDocumentCatalog();
> >         PDAcroForm acroForm = docCatalog.getAcroForm();
> >
> >         List<PDField> fields = acroForm.getFields();
> >         for (PDField field : fields)
> >         {
> >             list(field);
> >         }
> >         document.close();
> >     }
> >
> >     static void list(PDField field)
> >     {
> >         System.out.println("FullyQualifiedName:
> > "+field.getFullyQualifiedName());
> >         System.out.println("Value: "+field.getValueAsString());
> >         if (field instanceof PDNonTerminalField)
> >         {
> >             PDNonTerminalField nonTerminalField = (PDNonTerminalField)
> > field;
> >             for (PDField child : nonTerminalField.getChildren())
> >             {
> >                 list(child);
> >             }
> >         }
> >     }
> > }
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
> For additional commands, e-mail: users-h...@pdfbox.apache.org
>
>

--
Best regards,
Bruno


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org

Reply via email to