itext:Textextracting示例不起作用

时间:2016-06-20 09:46:33

标签: itext

我想明智地从PDF文档中提取文本,我正在使用itext。我使用了website

中的示例代码
processContent

方法NullPointerException为我提供java.lang.NullPointerException at com.itextpdf.text.pdf.parser.PdfReaderContentParser.processContent(PdfReaderContentParser.java:82) at com.itextpdf.text.pdf.parser.PdfReaderContentParser.processContent(PdfReaderContentParser.java:105) at org.languageresources.PDFExtraktor.extractTextFromPage(PDFExtractor.java:100) 。我做错了什么?

这是我使用版本5.5.0和this文件时得到的堆栈跟踪:

Hash#each_pair

1 个答案:

答案 0 :(得分:0)

鉴于您提供的代码片段和示例文档,我试图重现该问题,但无济于事,文本提取工作正常。

此外,堆栈跟踪给出:

java.lang.NullPointerException
at com.itextpdf.text.pdf.parser.PdfReaderContentParser.processContent(PdfReaderContentParser.java:82)
at com.itextpdf.text.pdf.parser.PdfReaderContentParser.processContent(PdfReaderContentParser.java:105)
at org.languageresources.PDFExtraktor.extractTextFromPage(PDFExtractor.java:100)

与所谓的5.5.0版本不匹配,因为该版本中的PdfReaderContentParser.java:82为空行且PdfReaderContentParser.java:105不存在:当时该文件的大小仅为85行。

假设您使用当前版本5.5.9,堆栈跟踪是有意义的,因为版本PdfReaderContentParser.java:82是这些行中的第二行:

PdfDictionary pageDic = reader.getPageN(pageNumber);
PdfDictionary resourcesDic = pageDic.getAsDict(PdfName.RESOURCES);
如果没有网页pageDic

null确实可以是pageNumber

因此,请检查相关页码的page是否介于1和reader.getNumberOfPages()之间。

相关问题