我正在尝试使用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 查看器可能无法显示此类文档。
您可以升级到适用于Windows®,Mac或Linux®的最新版Adobe Reader 访问http://www.adobe.com/go/reader_download。
有关Adobe Reader的更多帮助,请访问http://www.adobe.com/go/acrreader。
Windows是Microsoft Corporation在美国和/或其他国家/地区的注册商标或商标。 Mac是商标 Apple Inc.在美国和其他国家注册。 Linux是Linus Torvalds在美国和其他地区的注册商标 国家“。
但是我可以手动打开文件并填写字段。我也试过像iText这样的其他工具。但我又一次无法得到田野。 我该如何解决这个问题?
答案 0 :(得分: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" );