如何在servlet中获取以HTML格式提交的PDF表单的输入数据?

如何在servlet中获取以HTML格式提交的PDF表单的输入数据?,pdf,servlets,Pdf,Servlets,我有一个PDF表单,其中包含一些字段,如下所示 输入文本字段名称作为名称 输入复选框字段名称作为语言 输入单选按钮字段名称作为性别 选择组合框字段名称作为作业 以HTML格式提交按钮操作,并将URL提交到 和servlet1,其代码为blow protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { for(E

我有一个PDF表单,其中包含一些字段,如下所示 输入文本字段名称作为名称 输入复选框字段名称作为语言 输入单选按钮字段名称作为性别 选择组合框字段名称作为作业 以HTML格式提交按钮操作,并将URL提交到

和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表单中输入一些数据,然后单击submit,系统输出如下

SystemOut     O sex=M
SystemOut     O input7=eric
SystemOut     O input34=zhTW
SystemOut     O job=1
sex单选按钮和jobselect组合框的字段是可以的,但是为什么nameinput text和languagecheckbox的字段名更改为inputXX呢

我试着用

request.getParameter("name")
而我只是得到零

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

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

我没有看到任何即时错误,但我建议您使用以下Servlet来调试应用程序:

这个servlet将在GET请求的情况下以查询字符串的形式显示所有参数,但乍一看,PDF被配置为发布数据;如果是POST,它将显示发送的所有数据。这样,你就可以找出哪里出了问题


随时通知我们。

当使用标识符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
看一下最后一个条目。参照第12.7.3.1节定义/TM键:

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


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

PDF文件是由Acrobat X Pro从HTML文件翻译而来的,我注意到一些文件,如name

<input id="name" type='text'>
然后我更新HTML文件

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

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

正如您所看到的,您收到的参数中没有定义名称。检查PDF表单中的字段名称。我非常确定字段名称是我指定的,并且我将javascript写入getFieldname.value,它也会提醒eric,但我不知道为什么提交后字段名称会更改为input7?如果您想要更具体的信息,提供PDF文件。我已经在邮戳中添加了我的示例PDF文件链接,我询问如何获得上述信息/Ff 4194306/TM input7,有人使用工具或其他东西吗?我使用的是没有对象流文本查看器的旧PDF。