2

我正在尝试使用 JAVA 填写 PDF 表单,但是当我尝试使用以下代码获取字段时,列表为空。

PDDocument pdDoc = PDDocument.load(filename);
PDAcroForm pdform = pdDoc.getDocumentCatalog().getAcroForm();
List<PDField> field = pdform.getFields();

然后我尝试使用 PDFStripper 读取文件

PDFTextStripper stripper = new PDFTextStripper();
System.out.println(stripper.getText(pdDoc));

输出如下

“请稍等...

如果此消息最终没有被文档的正确内容替换,您的 PDF 查看器可能无法显示此类文档。

您可以通过访问http://www.adobe.com/go/reader_download升级到适用于 Windows®、Mac 或 Linux® 的最新版本的 Adob​​e Reader 。

有关 Adob​​e Reader 的更多帮助,请访问 http://www.adobe.com/go/acrreader

Windows 是微软公司在美国和/或其他国家的注册商标或商标。Mac 是 Apple Inc. 在美国和其他国家/地区注册的商标。Linux 是 Linus Torvalds 在美国和其他国家的注册商标。”

但我可以手动打开文件并填写字段。我也尝试过其他工具,例如 iText。但是我又一次无法获得田野。我该如何解决这个问题?

4

1 回答 1

0

可能现在回答为时已晚,但无论如何为什么不回答。如果您的 pdf 文件具有 XFA 结构,您可以获得空列表。

PDDocument pdDoc = PDDocument.load(filename);
PDAcroForm pdform = pdDoc.getDocumentCatalog().getAcroForm();
List<PDField> field = pdform.getFields();

使用这些代码行开始使用 pdf:

PDXFA xfa = pdform.getXFA();
Document xfaDocument = xfa.getDocument();
NodeList elements = xfaDocument.getElementsByTagName( "SomeElement" );
于 2018-01-15T12:12:20.280 回答