我有大小为 160MB 的 jave 文件。
当我尝试在 PdfReader(Itext 库)中加载它时,它会引发以下错误:
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**
最佳答案
我正在回答我自己的问题,所以它可以对其他人有所帮助。
我已经使用下面的代码解决了问题(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();
}
关于java - 无法处理大型 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29005446/