2017-02-02 2 views
-1

У меня проблема со счетчиком страниц в PDF.получение дополнительного количества страниц в pdf с использованием itext api с Java

Предположим, что у нас есть pdf со страницей 3, но в нижнем колонтитуле он возвращается «Страница 1 из 4». Мы получаем 4 из класса Eventer.

Jar: com.lowagie.text-2.1.7.jar

Eventer класс: PdfPageEventHelper.java

enter image description here

+0

iText 2.1.7 больше не поддерживается. Эти версии датируются 2009 годом, и вы больше не должны его использовать. Пожалуйста, прочитайте [Может ли iText 2.1.7/iTextSharp 4.1.6 или ранее использоваться в коммерческих целях?] (Http://developers.itextpdf.com/question/versions-older-than-5), если вам нужны аргументы, чтобы убедить менеджера проекта для перехода на более новую версию iText или iTextSharp. –

+0

Кроме того: 'PdfPageEventHelper' - это реализация интерфейса' PdfPageEvents', который состоит из * ничего, кроме * ** пустых ** * методов *. Следовательно, ваше утверждение о том, что класс «Eventer» является «PdfPageEventHelper», неверно. Это означает, что никто не знает, что вы подразумеваете под классом «Eventer». Такого нет. –

+0

Несмотря на то, что я использовал последнюю версию, также получая ту же проблему. Проверьте код отключения на http://memorynotfound.com/adding-header-footer-pdf-using-itext-java/ – Rajnikant

ответ

0

Пожалуйста, почитайте официальную документацию, и вы будете обнаружите, что пример на необоснованном веб-сайте, с которым вы консультировались, является неправильным.

В главе 5 моей книги «iText in Action - Second Edition» вы найдете пример MovieCountries1. Как вы можете видеть, мы используем writer.getPageNumber() - 1 в методе onCloseDocument().

public void onCloseDocument(PdfWriter writer, Document document) { 
    ColumnText.showTextAligned(total, Element.ALIGN_LEFT, 
      new Phrase(String.valueOf(writer.getPageNumber() - 1)), 
      2, 2, 0); 
} 

Причина этого объясняется в примечании на стр 152 книги:

Примечание Когда документ закрыт, метод newPage() срабатывает, чтобы выполнить finilizations по току стр. Когда вызывается newPage(), номер страницы дополняется, поэтому вам нужно использовать (writer.getPageNumber() - 1), если вы хотите добавить общее количество страниц в методе onCloseDocument().

Если вам нужен другой пример, взгляните на пример FillTemplateHelper на официальном сайте.

+0

Спасибо, что работает для меня – Rajnikant

+1

В этом случае не стесняйтесь принимать ответ. –

Смежные вопросы