我有一个PDF表单,其中包含一些字段,如下所示
PDF download link
输入文本字段名称为“名称”
输入复选框字段名称为“语言”
输入单选按钮字段名称为“性别”
选择组合框字段名称作为“作业”
以HTML格式提交按钮操作,并将网址提交至http://local.test.com/servlet1
和servlet1,代码为blow
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
for(Enumeration e = request.getParameterNames(); e.hasMoreElements();) {
String paraName = (String) e.nextElement();
String paramValue = URLDecoder.decode(new String(request.getParameter(paraName).getBytes("iso-8859-1")), "UTF-8");
System.out.println(paraName + "=" + paramValue);
}
}
比我输入PDF表格中的一些数据并点击提交,我得到如下的系统输出
SystemOut O sex=M
SystemOut O input7=eric
SystemOut O input34=zhTW
SystemOut O job=1
“性别”(单选按钮)和“作业”(选择组合)字段可以,但为什么“名称”(输入文本)和“语言”(复选框)的字段名称更改为“inputXX” ?
我尝试使用
request.getParameter("name")
我得到了空......
有什么建议吗? 非常感谢...
答案 0 :(得分:0)
我检查了您的表单,我看到名称为“name”的字段以及提交将数据发布到URL的按钮。其中一个提交按钮限制了发送到服务器的参数数量。
我没有看到任何即时错误,但我建议您使用以下Servlet来调试您的应用程序:http://itextpdf.com/examples/iia.php?id=169
这个servlet会在GET请求的情况下将所有参数显示为查询字符串(但初看起来,PDF配置为POST数据);如果是POST,它将显示发送的所有数据。通过这种方式,您可以找出问题所在。
让我们发布。
答案 1 :(得分:0)
使用标识符name
导出文本字段input7
的值时,PDF查看器只执行要求执行的操作,因为名称字段的字段字典包含请求字段的条目要使用键input7
导出的值。其他一些领域也是如此。
详细说明字段字典(对象106 0)包含以下条目:
/Ff 4194306
/F 4
/Type /Annot
/Subtype /Widget
/T name
/AP Dictionary
/P 42 0 R
/MK Dictionary
/BS Dictionary
/FT /Tx
/Rect [54.8909, 688.564, 161.891, 705.564]
/DA /Helv 0 Tf 0 g
/TM input7
看看最后一个条目。 / TM密钥定义为(参见ISO 32000-1:2008第12.7.3.1节):
text string (可选; PDF 1.3)应使用的映射名称 从文档中导出交互式表单字段数据时
如果您不希望使用该input7
键导出字段值,请从字段定义中删除 / TM 条目。
答案 2 :(得分:0)
PDF文件是由Acrobat X Pro从HTML文件翻译而来的,我注意到一些文件,例如“name”......
<input id="name" type='text'>
比我更新HTML文件
<input name="name" type='text'>
再次翻译成PDF并提交,现在一切正常〜:)