当您拥有PDF密码时,如何使用iText从受密码保护的PDF中读取字段?

时间:2013-05-21 13:57:42

标签: security pdf cryptography itext

我在PDF 1.7中使用LiveCycle Designer创建了PDF。

我有时想在服务器端读取PDF中的某些字段。我有密码保护服务器端的PDF。

对于非加密的PDF,我可以使用iText就可以了......

PdfReader reader = new PdfReader(request.getInputStream());
AcroFields af = reader.getAcroFields();
Map<String, AcroFields.Item> afFields = af.getFields();
for (String key : afFields.keySet()) {
    System.out.print(key + " = ");
    System.out.println(af.getField(key));
}

但是当我为受密码保护的PDF做同样的事情时,这似乎就会崩溃。我没有返回任何字段。

有什么方法可以将密码发送到iText并能够读取字段吗?

我也可以访问LiveCycle ES3 SDK。也许他们提供API来做到这一点?

1 个答案:

答案 0 :(得分:0)

如果有人在寻找它,答案就是在尝试从你的Java应用程序中从LiveCycle创建PDF中读取数据时放弃使用iText。我习惯使用开源API,我忘了使用他们提供的LiveCycle Web服务。

它们提供了一个工作台产品,可以将Web服务串联在一起。提供的众多Web服务之一是EncryptionService,它可以解密受密码保护的PDF,然后是另一个可以获取PDF中数据的XML表示的服务。

所以我简单地称这两项服务完成了。