无法使用PDFBOX读取PDF文件

时间:2013-06-27 07:03:33

标签: java pdfbox

我正在尝试使用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这样的其他工具。但我又一次无法得到田野。 我该如何解决这个问题?

1 个答案:

答案 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" );