我正在从servlet创建一个可编辑的pdf。用户输入数据并单击提交按钮。提交按钮的操作定义为" button.setAction(PdfAction.createSubmitForm(" / fdf",null,PdfAction.SUBMIT_XFDF))"。
当我尝试使用时将表单字段读回服务器 FdfReader reader = new FdfReader(request.getInputStream()),我一直收到上面没有找到' PDF标题签名的错误'。 在调试错误的位置时,生成的pdf具有'%PDF - '。但不知何故,当读取输入流时,我得到了这个错误。
非常感谢任何帮助。
答案 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
,问题就解决了。