2016-06-20 9 views
0

PDF文書のページからテキストを抽出したいのですが、私はitextを使用しています。私は彼らのwebsiteからサンプルコードを使用:itext:テキスト抽出の例が機能しない

PdfReader reader = new PdfReader(pathToFile); 
PdfReaderContentParser parser = new PdfReaderContentParser(reader); 
TextExtractionStrategy strategy = parser.processContent(page, new SimpleTextExtractionStrategy()); 

NullPointerExceptionを与えるprocessContent方法。私は何を間違えたのですか?

この

thisファイルでバージョン5.5.0を使用しているとき、私が得るスタックトレースです:

あなたは、私が問題を再現してみましたが、無駄に、テキスト抽出が働いていたコードsnipletとサンプル文書を考える
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) 
+0

詳細情報を共有せずにこの質問への回答を期待しないでください。 WebサイトのコードはiText 5.5.9とテストファイルで動作します。どのバージョンを使用していますか?どのPDFを解析しようとしていますか?この2つの質問に答えがなければ、あなたの質問は答えられません。 –

+0

ご返信ありがとうございます。スタックトレース、ファイル、および使用しているバージョンに関する情報を追加しました。 – user1406177

答えて

0

良い。

また、スタックトレースは、与えられた:当時、そのファイルは、唯一の85行あった:そのバージョンでPdfReaderContentParser.java:82が空行であり、PdfReaderContentParser.java:105が存在しないため

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と一致しませんサイズ。あなたが現在のバージョン5.5.9を使用していること、しかし、と仮定すると、


、スタックトレースは、そのバージョンPdfReaderContentParser.java:82で、理にかなって、これらの行の第二次のとおりです。

PdfDictionary pageDic = reader.getPageN(pageNumber); 
PdfDictionary resourcesDic = pageDic.getAsDict(PdfName.RESOURCES); 

pageDicは確かnullすることができページがない場合pageNumber

したがって、問題のページ番号pageが1とreader.getNumberOfPages()の間にあることを確認してください。

+0

あなたは2つの話が正しいと思います:私はバージョン5.5.9を使用しています(オススメ申し訳ありません)、私のページ番号は1と最大ページ数の間ではありませんでした。数字は0で始まると思いました。ありがとう! – user1406177

関連する問題