Javaコードから入力する必要のあるいくつかのフォームフィールドを含むPDFファイルがあります。私はこれにPDFBoxライブラリを使用し、このコードは次のとおりです。
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();
PDFは私が作成したものではないので、ファイルがどのタイプのフォームを使用しているかわかりません(正しく理解していれば、FDFフォームとXFAフォームがあります)。PDFは私が作成したものではないため、このツールhttp://support.persits.com/pdf/demo_formfields.aspを使用してフォームフィールドの名前を調べたところ、次のようになりました。
applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]
この長いフィールド名を使用すると、エラーは発生しませんが、結果のPDFには、フィールドに入力した値が含まれていません。フィールド名に何か問題があるのではないかと思ったので、フィールド名だけを教えてくれるPdftkツールtxtFirstName
を使いました。しかし、それだけを使用すると、No field found with name: txtFirstName
エラーが発生します。ヘルプ?