【问题标题】:Header overlap in iText5iText5 中的标题重叠
【发布时间】:2023-04-05 23:22:01
【问题描述】:

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

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

当我创建一个新的段落如下:

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

内容与标题重叠。我需要的是在页眉和页脚之间设置段落。有人可以告诉我我需要做什么才能将段落放在页眉和页脚之间,而不是放在它们上面。

谢谢

【问题讨论】:

    标签: java pdf layout pdf-generation itext


    【解决方案1】:

    将底部 20 中的边距设置为超出要求。 例如一般来说,你从底部保持marging是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);
        }
    }
    

    它将解决重叠的问题。它对我来说很好用。

    【讨论】:

      【解决方案2】:

      您需要正确设置边距:

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

      【讨论】:

      • 谢谢。但是我在哪里设置边距?在页眉之后添加了页脚?还是以前?此外,在将页眉和页脚添加到文档后,边距是否会受到影响? iText好像没有相对定位的概念。
      • 这里可以设置边距,开头:Document document = new Document(PageSize.A4, margins...);
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-01
      • 2019-07-30
      • 2016-09-27
      • 2017-07-01
      • 1970-01-01
      • 2013-05-19
      相关资源
      最近更新 更多