Перекрытие заголовка в iText5 - PullRequest
4 голосов
/ 05 декабря 2011

Я создал верхний и нижний колонтитулы для своего документа PDF с помощью PdfPTables. Я указал верхние и нижние колонтитулы в событиях onStartPage и onEndPage моего PdfPageEventHelper соответственно.

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

Когда я создаю новый абзац следующим образом:

Paragraph content = new Paragraph("This is a test text");
try{
  pdfDocument.add(content);
} catch (DocumentException e){
  e.printStackTrace();
}

Содержимое перекрывается с заголовком. Что мне нужно, это установить параграф между верхним и нижним колонтитулом. Может кто-нибудь сказать мне, что мне нужно сделать, чтобы поместить надписи между верхним и нижним колонтитулами, а не на них.

Спасибо

Ответы [ 2 ]

6 голосов
/ 06 октября 2014

Установите маржу в нижней части 20 больше, чем требуется. например Как правило, вы продолжаете маржировать снизу 40.

document.setMargins(50, 45, 50, 40);

А теперь держи 60.

writer=PdfWriter.getInstance(document, out);
document.setPageSize(PageSize.A4);
document.setMargins(50, 45, 50, 60);
document.setMarginMirroring(false);

writer.setPageEvent(new HeaderAndFooter());
document.open();

Теперь в HeaderFooter PageEvent установите нижний колонтитул в document.bottom () - 20 позиций.

public class HeaderAndFooter extends PdfPageEventHelper {
    private Font footerFont;
    public HeaderAndFooter() {
        super();
        footerFont = getFontObj(BaseColor.LIGHT_GRAY, 15);
        footerFont.setStyle(Font.ITALIC);
    }


    @Override
    public void onEndPage(PdfWriter writer, Document document) {
        PdfContentByte cb = writer.getDirectContent();
        ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, new Phrase(String.format("Page %d", writer.getPageNumber()),footerFont), (document.left() + document.right())/2 , document.bottom()-20, 0);
    }
}

Это решит проблему перекрытия. Это работает нормально для меня.

1 голос
/ 06 декабря 2011

вам нужно правильно установить поля:

Document(Rectangle pageSize, float marginLeft, float marginRight, float marginTop, float marginBottom)
...