Ошибка из-за повторного появления при попытке подсчитать количество страниц в файле PDF - PullRequest
0 голосов
/ 28 июля 2011

Я пытаюсь выполнить следующий код:

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)

Я знаючто-то не так с входным файлом.Мне просто интересно, есть ли способ узнать перед попыткой вызова метода, что файл вызовет проблему.

1 Ответ

0 голосов
/ 18 августа 2011

Оказывается, это была ошибка с версией itext, которую я использую (5.0.1). Я зарегистрировал запрос у разработчиков, и было внесено исправление, которое я протестировал, и которое, мы надеемся, найдет путь к следующей версии (5.0.2)

...