Ho un file PDF con alcuni campi modulo che ho bisogno di compilare dal codice Java. Io uso biblioteca PDFBox per questo, e questo codice:Riempimento modulo PDF con PDFBox non funziona
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();
Il PDF non è stato creato da me, quindi non so che tipo di forma degli usi di file (se ho capito bene, ci sono DFF e XFA forme). Dal momento che il PDF non è stato creato da me, ho usato questo strumento http://support.persits.com/pdf/demo_formfields.asp per scoprire i nomi dei campi del modulo, e mi ha dato questo:
applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]
Quando uso questo nome di campo lungo, non ho ricevuto eventuali errori, ma il PDF risultante non contiene il valore che ho inserito nel campo. Ho pensato che forse c'era qualcosa di sbagliato nel nome del campo, quindi ho usato Pdftk tool che mi ha dato solo txtFirstName
per il nome del campo. Ma quando uso proprio questo, ottengo l'errore No field found with name: txtFirstName
. Aiuto?
Il nome del campo suggerisce che si tratta di un campo XFA. Forse devi indirizzare i campi XFA in modo diverso in PDFBox? (Non conosco affatto l'API PDFBox ...) – mkl