Folks,
I am currently working on a java project where I am using pdfbox to extract
images from a pdf using getImages/getXobject method. I created the code and
it works as expected in windows 7(JRE 1.7 Oracle) environment.
When I move this code in linux environment Redhat 6.5(JRE 1.7 Oracle), it
throws multiple exceptions.
Please let me know what am I doing wrong.

Please find the java code attached as an attachment. The error message is :

Dec 7, 2014 5:17:17 AM org.apache.pdfbox.cos.COSDocument finalize
WARNING: Warning: You did not close a PDF Document
Dec 7, 2014 5:17:17 AM
org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap getRGBImage
SEVERE: java.lang.NullPointerException
Throwable occurred: java.lang.NullPointerException
        at 
org.apache.pdfbox.io.RandomAccessFileOutputStream.<init>(RandomAccessFileOutputStream.java:52)
        at org.apache.pdfbox.cos.COSStream.doDecode(COSStream.java:317)
        at org.apache.pdfbox.cos.COSStream.doDecode(COSStream.java:266)
        at 
org.apache.pdfbox.cos.COSStream.getUnfilteredStream(COSStream.java:192)
        at 
org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:232)
        at 
org.apache.pdfbox.pdmodel.common.PDStream.getByteArray(PDStream.java:510)
        at 
org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap.getRGBImage(PDPixelMap.java:255)
        at 
org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap.write2OutputStream(PDPixelMap.java:386)
        at 
org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage.write2file(PDXObjectImage.java:262)
        at com.vinayak.PdfBoxExtractor3.read_pdf(PdfBoxExtractor3.java:45)
        at com.vinayak.PdfBoxExtractor3.main(PdfBoxExtractor3.java:16)
Exception in thread "main" java.lang.NullPointerException
        at com.vinayak.PdfBoxExtractor3.read_pdf(PdfBoxExtractor3.java:39)
        at com.vinayak.PdfBoxExtractor3.main(PdfBoxExtractor3.java:16)



-- 
Vinayak Agrawal


"To Strive, To Seek, To Find and Not to Yield!"
~Lord Alfred Tennyson
package com.vinayak;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;

public class PdfBoxExtractor3 {
	public static void main(String[] args) {
		PdfBoxExtractor3 obj = new PdfBoxExtractor3();
		try {
			obj.read_pdf();
		} catch (IOException ex) {
			System.out.println("" + ex);
		}

	}

	void read_pdf() throws IOException {
		PDDocument document = null;
		try {
			document = PDDocument
					.load("/home/biadmin/freddy/15802643.pdf");
		} catch (IOException ex) {
			System.out.println("" + ex);
		}
		List pages = document.getDocumentCatalog().getAllPages();
		Iterator iter = pages.iterator();
		int i = 1;
		String name = null;
	
		while (iter.hasNext()) {
			PDPage page = (PDPage) iter.next();
			PDResources resources = page.getResources();
			Map pageImages = resources.getXObjects();
			if (pageImages != null) {
				Iterator imageIter = pageImages.keySet().iterator();
				while (imageIter.hasNext()) {
					String key = (String) imageIter.next();
					PDXObjectImage image = (PDXObjectImage) pageImages.get(key);
					image.write2file("/home/freddy/image" + i);
					i++;
				}
			}
		
			
			
		}

	}

}

Reply via email to