Как добавить номер страницы в заголовке, используя itext в Java? - PullRequest
0 голосов
/ 11 декабря 2011

Я не могу получить код для добавления номера страницы X из Y в заголовок страницы.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Создайте класс, как показано ниже

public class HeaderAndFooter extends PdfPageEventHelper {

public void onEndPage (PdfWriter writer, Document document) {
    Rectangle rect = writer.getBoxSize("art");
    switch(writer.getPageNumber() % 2) {
    case 0:
       ColumnText.showTextAligned(writer.getDirectContent(),
               Element.ALIGN_RIGHT, new Phrase("header"),
               rect.getBorderWidthRight(), rect.getBorderWidthTop(), 0);
        break;
    case 1:
        ColumnText.showTextAligned(writer.getDirectContent(),
                Element.ALIGN_CENTER, new Phrase(String.format("%d", writer.getPageNumber())),
                300f, 62f, 0);
        break;
    }
   ColumnText.showTextAligned(writer.getDirectContent(),
            Element.ALIGN_CENTER, new Phrase(String.format("%d", writer.getPageNumber())),
            (2f + 4f) / 2, 2f - 18, 0);
}}

используйте ниже единицы в вашем классе генерации PDF

bytearrayoutputstream = new ByteArrayOutputStream();
        Document document = new Document(PageSize.A4, 60, 60, 120, 80);
        PdfWriter writer = PdfWriter.getInstance(document, bytearrayoutputstream );
        HeaderAndFooter event = new HeaderAndFooter();
        writer.setPageEvent(event);
        document.open();

изменить ширину выравнивания заголовка в зависимости от высоты и ширины документа

0 голосов
/ 12 декабря 2011

Вы можете сделать это с помощью PdfTemplate .Сначала вы присоединяете PdfPageEventHelper к PdfWriter

Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, 
       new FileOutputStream("C:/path/to/pdf"));
writer.setPageEvent(new PageEventListener());

Затем вы определяете класс PageEventListener для расширения PdfPageEventHelper.В этом классе вы переопределяете onOpenDocument , onEndPage и onCloseDocument методы, и вы можете добавить номер страницы в форме X из Y, используя PdfTemplate.Подробности с рабочим кодом доступны здесь , в разделе chapter05, источник MovieCountries1.java.

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