首页 文章

iText5中的 Headers 重叠

提问于
浏览
4

我使用PdfPTables为我的PDF文档创建了页眉和页脚 . 我已经在我的PdfPageEventHelper的onStartPage和onEndPage事件中分别指定了页眉和页脚 .

我面临的问题是在我的文档中添加一个段落 .

当我创建一个新段落时,如下所示:

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

内容与 Headers 重叠 . 我需要的是在页眉和页脚之间设置pargraph . 有人可以告诉我,为了将pargraph放在页眉和页脚之间而不是在它们之间,我需要做些什么 .

谢谢

2 回答

  • 5

    将保证金设置在底部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中将footer设置为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

    你需要正确设置边距:

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

相关问题