dev22 Ответов: 3

Как получить общее количество страниц pdf-страниц в нижнем колонтитуле на каждой странице с помощью Itextsharp


Привет,

Как получить общее количество страниц документа pdf с помощью itextsharp?

Я хочу отобразить общее количество страниц в нижнем колонтитуле каждой страницы.
Есть документ на собственность.PageCount (но из этого мы можем просто установить счетчик так, как хочет пользователь).
Из следующего кодирования я получил общее количество в событии OnCloseDocument () PdfPageEventHelper, но не получил этого количества в OnEndPage ().

int totcountPage = 0;
public override void OnCloseDocument(PdfWriter writer, Document document)
{
       total.BeginText();
       int pageNumber = writer.PageNumber - 1;
       total.ShowText(Convert.ToString(pageNumber));
       total.EndText();
       totcountPage = writer.PageNumber;
    //MessageBox.Show(p.ToString());        
} 


Выше у меня есть общее количество страниц, но я хочу отобразить их в нижнем колонтитуле страницы.
int i=0;
public override void OnEndPage(PdfWriter writer, Document doc)
{  
   Paragraph para = new Paragraph(i + " of "  + totcountPage + "", footer);
  doc.Add(para);
}


Здесь в качестве события OnEndPage () вызывается сначала , как и раньше, OnCloseDocument (), поэтому отображение totcountPage равно 0. таким образом, я не получаю правильный вывод, который мне нужен.

Например, показывая выход
1 из 0... На первой странице
5 из 0...На Пятой Странице

Например ожидается выход
1 из 5... На первой странице
5 из 5 ...На Пятой Странице

Так что, пожалуйста, помогите мне.

Dalek Dave

Отредактировано для блоков кода, грамматики, орфографии и читабельности.

3 Ответов

Рейтинг:
2

codeprojectddx

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


Рейтинг:
0

Scubapro

Насколько я понимаю, у вас будет 2 варианта:

1) Создайте свой полный PDF-файл, а затем добавьте нижние колонтитулы, но я не знаю, возможно ли это с помощью ItextSharp.

2)Создайте поток памяти, создайте свой PDF-файл, получите общее количество страниц, а затем создайте файловый поток, который (повторно) построит ваш PDF-файл с правильными сносками.