我正在使用 iText v5.4.2。我正在尝试解析 PDF 文件中的图像。对于某些 PDF 文件中的某些图像,我得到 NullPointerException。可以在此处下载带有“错误”图像的 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
}
}
}