无法处理大型PDF文件

时间:2015-03-12 08:59:44

标签: java itext heap-memory ioexception

我有大小为160MB的jave文件。

当我尝试在PdfReader(Itext Library)中加载它时会触发以下错误:

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

我正在使用Java版本1.5(32位)。

代码:

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();
    }

我设置了以下堆大小参数:

-Xms1000m -Xmx1500m -XX:MaxPermSize=512m

我在PdfReader中加载文件之前得到了堆统计信息:

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

1 个答案:

答案 0 :(得分:1)

我对自己的问题的回答是错误的,所以对其他人有帮助。

我已解决问题使用以下代码(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();
    }