Как получить общее количество страниц в iText7 при добавлении этой информации в нижний колонтитул документа? - PullRequest
0 голосов
/ 18 февраля 2020

В iTextSharp мы можем переопределить событие OnCloseDocument () и добавить Page # of #total в нижний колонтитул документа. Однако PdfDocument больше не имеет этого события закрытия документа. Поскольку мы не можем определить общее количество страниц при добавлении новых страниц, как мы можем определить это общее количество и поместить его в нижний колонтитул при создании документа?

Я видел несколько предложений по методу грубой силы: после того, как документ PDF сгенерирован и перед его сбросом, используйте PdfReader, чтобы прочитать его, чтобы получить общее количество перед обновлением нижнего колонтитула. Это единственный способ? Есть ли лучший способ сделать это?

Спасибо.

1 Ответ

0 голосов
/ 19 февраля 2020

Это один из способов сделать это.

Другой способ сделать это описан в этом примере кода :

protected void manipulatePdf(String dest) throws Exception {
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
    Document doc = new Document(pdfDoc);

    int numberOfPages = pdfDoc.getNumberOfPages();
    for (int i = 1; i <= numberOfPages; i++) {

        // Write aligned text to the specified by parameters point
        doc.showTextAligned(new Paragraph(String.format("page %s of %s", i, numberOfPages)),
                559, 806, i, TextAlignment.RIGHT, VerticalAlignment.TOP, 0);
    }

    doc.close();
}

В этом примере кода Вы добавите нижний колонтитул после создания и очистки PDF. Это очень простой и легкий способ выполнить этот запрос.

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