【发布时间】:2012-02-25 07:02:31
【问题描述】:
如何在我的 PDF 页面中添加 header 和 footer? 我想要一个表,表头有 3 列,其他表有 3 列,页脚有 3 列。 我的页面可以是 A3 或 A4,也可以是横向或纵向。
谁能帮助我?我在网上找不到好的例子。
谢谢!
托马索
【问题讨论】:
标签: java pdf pdf-generation itext
如何在我的 PDF 页面中添加 header 和 footer? 我想要一个表,表头有 3 列,其他表有 3 列,页脚有 3 列。 我的页面可以是 A3 或 A4,也可以是横向或纵向。
谁能帮助我?我在网上找不到好的例子。
谢谢!
托马索
【问题讨论】:
标签: java pdf pdf-generation itext
例子:
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());
【讨论】:
最简单的方法是首先在内存中生成整个 PDF 的内容,然后在创建所有页面后,您需要在 pdfStamper 中打开内存中的 PDF 并遍历添加到页眉和页脚对象是正确的坐标。
如果您对在 itextPDF 中添加页码进行快速 google 搜索,您会发现许多示例,您可以快速适应您的需求。
关键是它是在你创建 pdf 之后完成的,而不是之前。
【讨论】: