我在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来做到这一点?
答案 0 :(得分:0)
如果有人在寻找它,答案就是在尝试从你的Java应用程序中从LiveCycle创建PDF中读取数据时放弃使用iText。我习惯使用开源API,我忘了使用他们提供的LiveCycle Web服务。
它们提供了一个工作台产品,可以将Web服务串联在一起。提供的众多Web服务之一是EncryptionService,它可以解密受密码保护的PDF,然后是另一个可以获取PDF中数据的XML表示的服务。
所以我简单地称这两项服务完成了。