-1

我有一个 PDF 表单,其中包含如下一些字段
PDF 下载链接
输入文本字段名称为“名称”
输入复选框字段名称为“语言”
输入单选按钮字段名称为“性别”
选择组合框字段名称为“工作”
提交按钮操作作为 HTML 格式,并将 URL 提交到http://local.test.com/servlet1

和 servlet1,其代码为打击

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

“sex”(单选按钮)和“job”(选择组合)的字段都可以,但是为什么“name”(输入文本)和“language”(复选框)的字段名称更改为“inputXX”?

我尝试使用

request.getParameter("name")

我刚得到空...

有什么建议吗?非常感谢...

4

3 回答 3

0

我检查了您的表单,我看到了名为“name”的字段以及将数据发布到 URL 的提交按钮。其中一个提交按钮限制了发送到服务器的参数数量。

我没有立即看到任何错误,但我建议您使用以下 Servlet 来调试您的应用程序:http: //itextpdf.com/examples/iia.php ?id=169

此 servlet 将在 GET 请求的情况下将所有参数显示为查询字符串(但乍一看,PDF 被配置为 POST 数据);如果是 POST,它将显示所有发送的数据。这样,您可以找出问题所在。

随时通知我们。

于 2012-11-22T08:13:26.263 回答
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 节):

文本字符串(可选;PDF 1.3)从文档中导出交互式表单字段数据时应使用的映射名称

如果您不希望使用该input7键导出字段值,请从字段定义中删除该/TM条目。

于 2012-11-22T09:46:48.663 回答
0

PDF 文件是由 Acrobat X Pro 从 HTML 文件翻译的,我注意到一些文件,例如“名称”...

<input id="name" type='text'>

比我更新 HTML 文件

<input name="name" type='text'>

并再次翻译成PDF并提交,现在一切正常~:)

于 2012-11-22T10:06:49.183 回答