2017-09-05 1 views
0

J'essaie de récupérer certains champs d'entrée d'un PDF (2.0.7) avec PDFBox sans succès. En détail, j'ai ce qui suit (PDF disponible ici: https://file.io/q56S4r ou ici http://s000.tinyupload.com/index.php?file_id=38385451581058382678). Le PDF actuel contient 3 champs de texte portant le même nom "Text1". En outre Acrobat PRO représente ces domaines comme vu dans la capture d'écran à partir d'Acrobat Pro:PDFBox: récupérer plusieurs champs de texte avec le même nom

enter image description here

Le code suivant ci-dessous au lieu de récupérer 3 champs, elle retourne une liste avec juste cet objet "Texte1 {type: PDTextField valeur: null} "

PDDocument pdfDocument = PDDocument.load(input); 
PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog(); 
PDAcroForm acroForm = docCatalog.getAcroForm(); 
List<PDField> fields = acroForm.getFields(); 
for (PDField field : fields) { 
    ... 
} 

Est-il possible de lire en quelque sorte tous les domaines, même si elles ont le même nom? Est-ce une mauvaise pratique peut-être et la bonne réponse est de donner des noms uniques?

+0

Pouvez-vous télécharger votre fichier PDF vers un hébergeur qui n'essaie pas d'installer des logiciels malveillants sur votre ordinateur? – Lothar

+0

Désolé, je n'ai pas trouvé de fournisseur qui est gratuit. Essayez de google drive: https://drive.google.com/file/d/0B_9B-OjXnFv_VFg5ZGJoazN5VUk/view?ts=59aea777 – Stephan

Répondre

2

Techniquement, le PDF n'a qu'un seul champ défini. Si vous ouvrez le fichier PDF dans Acrobat Reader et entrez une valeur dans l'un des champs, les deux autres champs sont immédiatement remplis avec la même valeur. Si vous voulez vraiment trois valeurs différentes, vous devez spécifier un nom unique pour chacun des champs.

+0

Merci. Cela répond à ma question. – Stephan