我通过我的应用程序动态创建一些PDF文件,使用iText,我需要使用几个组件(TextField,CheckBox,RadioButtons等),然后将值提交给服务器。但是,其中一个要求是用户需要能够选择和发送文件以及其他值。我没有找到特定的组件,所以我要求这方面的帮助。
有没有办法创建某种输入文件,文件选择器等,并将其附加到生成的PDF文件中?然后将此选定文件发送到服务器?
由于
答案 0 :(得分:0)
官方文档中对此进行了解释,更具体地说,在FdfServlet第9章的示例book中对此进行了解释。但是,在此示例中,我们将文件选择字段添加到现有PDF中,因此我向您提供了一个示例,说明如何从头开始创建文档时创建此类字段:FileSelectionExample
创建文件选择字段与任何其他文本字段一样,只是必须使用setOptions()
方法设置标记。如果要显示文件选择器,还必须添加JavaScript操作:
TextField file = new TextField(writer, new Rectangle(36, 788, 559, 806), "myfile");
file.setOptions(TextField.FILE_SELECTION);
PdfFormField upload = file.getTextField();
upload.setAdditionalActions(PdfName.U, PdfAction.javaScript(
"this.getField('myfile').browseForFileToSubmit();", writer));
writer.addAnnotation(upload);
在完整示例中,我还添加了第二个字段,在使用browseForFileToSubmit()
方法选择文件后,我将焦点设置为其他字段。我这样做是因为文件名只有在该字段失去焦点后才会在文件选择字段中显示。