PDF Formular ausfüllen mit PDFBox nicht funktioniert

Ich habe eine PDF-Datei mit ein paar Formular-Felder, die ich ausfüllen muss von Java-code. Ich benutze PDFBox-Bibliothek für diesen, und diesen 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();

Die PDF ist nicht von mir erstellt, ich weiß also nicht, welche Art von form, die von der Datei verwendet (wenn ich das richtig verstehe, es gibt FDF-und XFA-Formulare). Da das PDF ist nicht von mir erstellt wurden, habe ich dieses tool http://support.persits.com/pdf/demo_formfields.asp, um herauszufinden, die Namen der Formular-Felder, und es gab mir diese:

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

Wenn ich diese lange-Feld-Namen, ich bekomme keine Fehler, aber das erstellte PDF enthält nicht den Wert, den ich setzen in das Feld ein. Ich dachte, dass vielleicht gab es etwas falsch mit dem Feld name, so habe ich Pdftk-tool, die mir gerade txtFirstName für das Feld name. Aber wenn ich nur, dass ich die No field found with name: txtFirstName Fehler. Hilfe?

  • Das Feld name vermuten lässt, ist es ein XFA-Feld. Vielleicht haben Sie die Adresse XFA-Feldern unterschiedlich PDFBox? (Ich weiß nicht, die PDFBox-API in allen...)
InformationsquelleAutor stojke | 2012-11-19
Schreibe einen Kommentar