itext:文本提取示例不起作用
itext: Textextracting example not working
我想从 PDF 文档页面中提取文本,我正在使用 itext。我使用了他们 website:
中的示例代码
PdfReader reader = new PdfReader(pathToFile);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
TextExtractionStrategy strategy = parser.processContent(page, new SimpleTextExtractionStrategy());
方法processContent
给了我一个NullPointerException
。我做错了什么?
这是我将 5.5.0 版与 this 文件一起使用时得到的堆栈跟踪:
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)
鉴于您提供的代码片段和示例文档,我尝试重现该问题但无济于事,文本提取工作正常。
此外,给出的堆栈跟踪:
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()
之间。
我想从 PDF 文档页面中提取文本,我正在使用 itext。我使用了他们 website:
中的示例代码PdfReader reader = new PdfReader(pathToFile);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
TextExtractionStrategy strategy = parser.processContent(page, new SimpleTextExtractionStrategy());
方法processContent
给了我一个NullPointerException
。我做错了什么?
这是我将 5.5.0 版与 this 文件一起使用时得到的堆栈跟踪:
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)
鉴于您提供的代码片段和示例文档,我尝试重现该问题但无济于事,文本提取工作正常。
此外,给出的堆栈跟踪:
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()
之间。