Dear all,
I have the following code to insert a TIFF image ( with compression LZW ) into a word document. However , there is null pointer exception throwing out. Does anyone has any solution to handle it ?
The code:
import com.aspose.words.*;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageDecoder;
import javax.media.jai.JAI;
import javax.media.jai.NullOpImage;
import javax.media.jai.OpImage;
import javax.media.jai.PlanarImage;
import java.awt.image.BufferedImage;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
// step 1: creation of a document-object
try {
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
String file = "C:\test.tif";
com.sun.media.jai.codec.FileSeekableStream ss = new com.sun.media.jai.codec.FileSeekableStream(file);
ImageDecoder decoder = ImageCodec.createImageDecoder("tiff", ss, null);
int numPages = decoder.getNumPages();
BufferedImage image[]= new BufferedImage[numPages];
for(int i=0;i<decoder.getNumPages();i++){
PlanarImage op = new NullOpImage(decoder.decodeAsRenderedImage(i),
null,
OpImage.OP_IO_BOUND,
null);
builder.insertImage(op.getAsBufferedImage(),
RelativeHorizontalPosition.MARGIN,
0,
RelativeVerticalPosition.MARGIN,
0,
450,
600,
WrapType.SQUARE);
}
doc.save("C:\out.doc");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
The error:
java.lang.NullPointerException
at com.sun.media.jai.codecimpl.TIFFLZWDecoder.decode(TIFFLZWDecoder.java:105)
at com.sun.media.jai.codecimpl.TIFFImage.getTile(TIFFImage.java:1065)
at javax.media.jai.RenderedImageAdapter.getTile(RenderedImageAdapter.java:148)
at javax.media.jai.NullOpImage.computeTile(NullOpImage.java:162)
at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
at javax.media.jai.OpImage.getTile(OpImage.java:1129)
at javax.media.jai.PlanarImage.copyData(PlanarImage.java:2343)
at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2525)
at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2546)
at HelloWorld.main(HelloWorld.java:95)