【问题标题】:iText 5 header and footeriText 5页眉和页脚
【发布时间】:2012-02-25 07:02:31
【问题描述】:

如何在我的 PDF 页面中添加 headerfooter? 我想要一个表,表头有 3 列,其他表有 3 列,页脚有 3 列。 我的页面可以是 A3 或 A4,也可以是横向或纵向。

谁能帮助我?我在网上找不到好的例子。

谢谢!

托马索

【问题讨论】:

    标签: java pdf pdf-generation itext


    【解决方案1】:
    1. 创建一个扩展 PdfPageEventHelper 的类 MyPageEventListener
    2. 向 PdfWriter 对象添加页面事件侦听器
    3. 在MyPageEventListener类的onEndPage方法中,放入代码 用于页眉/页脚

    例子:

    public class MyPageEventListener extends PdfPageEventHelper {
      . . .
      @Override
      public void onEndPage(PdfWriter writer, Document document) {
         //code skeleton to write page header
         PdfPTable tbl = new PdfPTable(3);
         tbl.addCell("1st cell");
         tbl.addCell("2nd cell");
         tbl.addCell("3rd cell");
         float x = document.leftMargin();
         float hei = getMyHeaderHeight(); //custom method that return header's height 
         //align bottom between page edge and page margin
         float y = document.top() + hei;
    
         //write the table
         tbl.writeSelectedRows(0, -1, x, y, writer.getDirectContent());
      }    
    }
    

    简单地注册监听器

    writer.setPageEvent(new MyPageEventListener());
    

    【讨论】:

    • 您的代码非常混乱,您使用的是未定义的变量(如 c_document 或 header)并且有意大利语(?)cmets,您能澄清一下吗?
    【解决方案2】:

    最简单的方法是首先在内存中生成整个 PDF 的内容,然后在创建所有页面后,您需要在 pdfStamper 中打开内存中的 PDF 并遍历添加到页眉和页脚对象是正确的坐标。

    如果您对在 itextPDF 中添加页码进行快速 google 搜索,您会发现许多示例,您可以快速适应您的需求。

    关键是它是在你创建 pdf 之后完成的,而不是之前。

    【讨论】:

      猜你喜欢
      • 2017-02-28
      • 1970-01-01
      • 2018-07-21
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多