Использование iText 2.1.7 для объединения больших PDF-файлов - PullRequest
0 голосов
/ 29 июня 2018

Я использую старую версию iText (2.1.7) для объединения PDF-файлов. Потому что это последняя версия под MPL для меня. Я не могу это изменить.

В любом случае. Я пытаюсь объединить несколько PDF-файлов. Кажется, все работает нормально, но когда я перебираю около 1500 страниц, сгенерированный PDF не открывается (ведет себя как поврежденный)

Вот как я это делаю:

private byte[] mergePDFs(List<byte[]> pdfBytesList) throws DocumentException, IOException {
    Document document = new Document();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    PdfCopy copy = new PdfCopy(document, outputStream);
    document.open();

    for (byte[] pdfByteArray : pdfBytesList) {
        ByteArrayInputStream readerStream = new ByteArrayInputStream(pdfByteArray);
        PdfReader reader = new PdfReader(readerStream);

        for (int i = 0; i < reader.getNumberOfPages(); ) {
            copy.addPage(copy.getImportedPage(reader, ++i));
        }

        copy.freeReader(reader);
        reader.close();
    }

    document.close();

    return outputStream.toByteArray();
}

Это правильный подход? Есть ли в этом что-то, что намекало бы на разрыв при просмотре определенного количества страниц? Нет никаких исключений и тому подобное.

1 Ответ

0 голосов
/ 18 июля 2018

Для любого любопытного, проблема не имела никакого отношения к iText, а вместо этого был код, отвечающий за возврат ответа от iText.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...