我有一个PDF文件,其中包含一些我需要从Java代码填写的表单字段.我为此使用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();
Run Code Online (Sandbox Code Playgroud)
PDF不是由我创建的,所以我不知道文件使用什么类型的表单(如果我理解正确,则有FDF和XFA表单).由于PDF不是由我创建的,我使用此工具http://support.persits.com/pdf/demo_formfields.asp来查找表单字段的名称,它给了我:
applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]
Run Code Online (Sandbox Code Playgroud)
当我使用这个长字段名称时,我没有收到任何错误,但生成的PDF不包含我在字段中输入的值.我想也许字段名称可能有问题,所以我使用了Pdftk工具,它只给了我txtFirstName字段名称.但是当我使用它时,我得到了No field found with name: txtFirstName错误.救命?
我的页面上有这个链接(第1页):
<a href="@{Controller.action1().secure()}">Link1</a>
Run Code Online (Sandbox Code Playgroud)
通过https将我带到页面(第2页).如何在第2页上建立一个链接,让我从https回到http?我认为@@ notation可以解决这个问题:
<a href="@@{Controller.action2()}">Link2</a>
Run Code Online (Sandbox Code Playgroud)
但它没有,action2也通过https调用.