iText v5.4.2 を使用しています。PDFファイルから画像を解析しようとしています。特定の PDF ファイルの特定の画像に対して NullPointerException が発生します。1 つの「問題のある」画像を含む PDF ファイルは、https ://dl.dropboxusercontent.com/u/3585277/LZW_Error.pdf からダウンロードできます。
簡単なデモを次に示します。
public class LZWDecodeDemo {
public static void main(String[] args) throws Exception {
LZWDecodeDemo demo = new LZWDecodeDemo();
demo.parseImages();
}
private void parseImages() throws Exception {
String pathToPdf = "C:\\temp\\LZW_Error.pdf";
PdfReader reader = new PdfReader(pathToPdf);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
ImageRenderListener imageRenderListener = new ImageRenderListener();
parser.processContent(1, imageRenderListener);
}
private class ImageRenderListener implements RenderListener {
public ImageRenderListener() {
//
}
public void beginTextBlock() {
// nothing
}
public void endTextBlock() {
// nothing
}
public void renderImage(ImageRenderInfo imageRenderInfo) {
try {
PdfImageObject image = imageRenderInfo.getImage();
System.out.println("Rendered image :" + image);
} catch (IOException e) {
e.printStackTrace();
}
}
public void renderText(TextRenderInfo arg0) {
// nothing
}
}
}