2011-07-28 47 views
0

我想執行以下代碼:試圖計算一個PDF文件的頁數iText的內存不足錯誤

PdfReader reader = new PdfReader("/path/to/file.pdf"); 
int pages = reader.getNumberOfPages(); 

它適用於大多數的文件,但在一個特定的文件,它崩潰錯誤:

java.lang.OutOfMemoryError: Java heap space 
    at java.util.Arrays.copyOf(Arrays.java:2882) 
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) 
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:572) 
    at java.lang.StringBuffer.append(StringBuffer.java:320) 
    at com.itextpdf.text.pdf.PRTokeniser.readString(PRTokeniser.java:158) 
    at com.itextpdf.text.pdf.PRTokeniser.getStartxref(PRTokeniser.java:224) 
    at com.itextpdf.text.pdf.PRTokeniser.getStartxref(PRTokeniser.java:229) 
    ...goes on for a while 
    at com.itextpdf.text.pdf.PRTokeniser.getStartxref(PRTokeniser.java:229) 

我知道這是輸入文件的錯誤。我只是想知道在嘗試進行方法調用之前是否有一種方法知道該文件將導致問題。

回答

0

事實證明這是我使用的itext版本(5.0.1)的一個錯誤。我向開發人員記錄了一個查詢,並且修復了一個 - 我測試過的 - 並且希望能夠進入下一個版本(5.0.2)