Правило № 1: не используйте OnStartPage()
, чтобы добавить верхние и нижние колонтитулы. Используйте метод OnEndPage()
только для добавления заголовка и нижнего колонтитула.
Правило №2: не добавлять содержимое объекта Document
, переданного в качестве параметра методу события. Используйте вместо этого DirectContent
PdfWriter
.
Правило № 3: читать documentation и посмотреть на примеры и Q & Как отмечено header и footer
Вы заметите, что ваш вопрос является дубликатом:
Это ответ на ваш вопрос: Просьбы предложить лучший способ включить верхние и нижние колонтитулы.
Ваш вопрос о «наценки не работает правильно», вероятно, ответил здесь: Why is my content overlapping with my footer? Однако, говоря «поля не работают правильно» это не актуальный вопрос. Если я скажу своему врачу: «Мне плохо, пожалуйста, помогите мне!» Я не могу ожидать, что он мне поможет, если я не дам ему больше информации. Когда я добавляю верхние и нижние колонтитулы, поля работают правильно. Если это не сработает, вы делаете это неправильно ...
То же самое верно и для вашего утверждения, что верхний и нижний колонтитул "отображается только на первой странице". Это просто неверно с нашей точки зрения. Если добавить событие в PdfWriter
как это:
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
Header event = new Header();
writer.setPageEvent(event);
Затем метод OnEndPage()
вызывается каждый раз, когда страница финализации.
Пожалуйста, покажите свой код, который * отображается только на первой странице *, чтобы мы могли рассказать вам, как его исправить. – mkl
Возможный дубликат [Верхний и нижний колонтитулы в ITextSharp] (http://stackoverflow.com/questions/34484244/header-and-footer-in-itextsharp) –