PDF de remplissage de formulaire avec PDFBox ne fonctionne pas

J'ai un fichier PDF avec certains champs du formulaire que je dois remplir à partir du code Java. J'utilise PDFBox bibliothèque pour le présent, et le présent code:

PDDocument pdfDoc = PDDocument.load("C:\\Users\\igor\\Desktop\\test.pdf");
PDDocumentCatalog docCatalog = pdfDoc.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
PDField field = acroForm.getField("applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]");
if (field != null) {
    field.setValue("Milan");
} else {
    System.err.println("No field found with name:" + "applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]");
}
pdfDoc.save("C:\\Users\\igor\\Desktop\\testout.pdf");
pdfDoc.close();

Le PDF n'est pas créé par moi, donc je ne sais pas quel type de formulaire dans le fichier (si je comprends bien, il y a DFF et formulaires XFA). Depuis le PDF n'est pas créé par moi, j'ai utilisé cet outil http://support.persits.com/pdf/demo_formfields.asp pour trouver les noms des champs du formulaire, et il m'a donné ceci:

applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]

Lorsque j'utilise ce long champ nom, je n'ai aucune erreur, mais le fichier PDF résultant ne contient pas la valeur que j'ai mis dans le champ. J'ai pensé que peut-être il y avait quelque chose de mal avec le nom de champ, j'ai donc utilisé Pdftk outil qui m'a donné tout txtFirstName pour le nom du champ. Mais quand j'utilise juste que, j'ai l' No field found with name: txtFirstName erreur. De l'aide?

Le champ nom suggère qu'il est un XFA champ. Peut-être que vous avez à l'adresse XFA champs différemment dans PDFBox? (Je ne sais pas le PDFBox API...)

OriginalL'auteur stojke | 2012-11-19