Как получить количество страниц Portable Collection Pdf, используя IText или любую функцию, использующую Java - PullRequest
0 голосов
/ 01 апреля 2019
PdfReader reader = new PdfReader(pdfFile, new byte[0]);
pages = reader.getNumberOfPages();

Предположим, что в переносимой коллекции есть два файла PDF (каждый из них содержит 2 страницы).Когда я пытаюсь получить количество страниц, он возвращает только 1. Я думаю, что это рассматривает титульную страницу переносимого документа коллекции.Есть ли способ получить количество страниц портативной коллекции?Я использую Java 11 и версию IText 5.5.

1 Ответ

0 голосов
/ 04 апреля 2019

Я нашел решение для этого, но я думаю, что нет необходимости проверять следующие вещи.Я думаю, что приведенное ниже решение не является эффективным способом получения полного числа страниц PDF.

private int getNumberOfPages(PdfReader reader) {
            int pages = 0;
            PdfObject obj;
            for (int i = 1; i <= reader.getXrefSize(); i++) {
                obj = reader.getPdfObject(i);
                if (obj != null && obj.isStream()) {
                    PRStream stream = (PRStream)obj;
                    byte[] b;
                    try {
                        b = PdfReader.getStreamBytes(stream);
                        PdfReader pdfReader = new PdfReader(b);
                        pages += pdfReader.getNumberOfPages();
                    } catch(InvalidPdfException e) {

                    } catch (IOException e) {

                    }

                }
            }
            if (pages == 0) {
                pages = reader.getNumberOfPages();
            }
            return pages;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...