Search code examples
javaitextheap-memoryioexception

Unable to process large PDF file


I have jave file with size 160MB.

When I try to load it in PdfReader (Itext Library) it fire following error:

java.io.IOException: Not enough storage is available to process this command

I am using Java Version 1.5 (32bit).

Code:

PdfReader pdfReader = null;
    try{
            pdfReader = new PdfReader("D://bigfile.pdf");

            //also try using  pdfReader = new PdfReader(new RandomAccessFileOrArray("D://bigfile.pdf"),null);
    }catch(Exception e){
            System.out.println("Error");
            e.printStackTrace();
    }

I have set following heap size parameters:

-Xms1000m -Xmx1500m -XX:MaxPermSize=512m

I am getting following heap statistics before loading file in PdfReader:

##### Heap utilization statistics [MB] #####
Used Memory:70
Free Memory:921
Total Memory:992
Max Memory:1016**

Solution

  • i am wring answer to my own question so it can be helpful to other.

    i have solved problem Using below code (using Document.plainRandomAccess=true;):

    PdfReader pdfReader = null;
        try{
                Document.plainRandomAccess=true;
                pdfReader = new PdfReader(new RandomAccessFileOrArray("D://bigfile.pdf"),null);
        }catch(Exception e){
                System.out.println("Error");
                e.printStackTrace();
        }