' com.itextpdf.text.exceptions.InvalidPdfException:未找到PDF标题签名'从servlet读取输入流时

时间:2014-07-16 21:00:44

标签: java itext

我正在从servlet创建一个可编辑的pdf。用户输入数据并单击提交按钮。提交按钮的操作定义为" button.setAction(PdfAction.createSubmitForm(" / fdf",null,PdfAction.SUBMIT_XFDF))"。

当我尝试使用时将表单字段读回服务器 FdfReader reader = new FdfReader(request.getInputStream()),我一直收到上面没有找到' PDF标题签名的错误'。 在调试错误的位置时,生成的pdf具有'%PDF - '。但不知何故,当读取输入流时,我得到了这个错误。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您说您将数据提交为XFDF(这是FDF的XML版本)。但是,您尝试使用FdfReader而不是XfdfReader来阅读此数据。 FdfReader期望一个以PDF语法编写且以%PDF-1开头的文件。您正在接收一个用XML编写的文件,该文件以:

开头
<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">

由于<?xml%PDF-1 PDF标题签名)完全不同,因此您不应对此错误感到惊讶。它确切地说明了您向FdfReader提供的数据有什么问题。

FdfReader替换为代码中的XfdfReader,问题就解决了。