1

我有一个从 PDF 1.7 中的 LiveCycle Designer 创建的 PDF。

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

我可以将 iText 用于非加密 PDF 就好了...

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 来做到这一点?

4

1 回答 1

0

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

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

所以我简单地调用了这两个服务,然后就完成了。

于 2013-06-05T02:50:29.657 回答