iTextSharp - 所有页面的页眉和页脚

时间:2016-01-24 10:15:14

标签: pdf header itextsharp footer

我通过添加容纳多个页面的单个PdfPTable来生成PDF。 现在我想向所有这些页面添加页眉和页脚,但它只显示在第一页上。边距也无法正常工作。

我正在重写类PdfPageEventHelper的OnStartPage / OnEndPage事件。

请建议使用页眉和页脚的最佳方法。

由于

1 个答案:

答案 0 :(得分:2)

规则#1:不要使用OnStartPage()添加页眉或页脚。仅使用OnEndPage()方法添加页眉和页脚。

规则#2:不要将内容添加到作为参数传递给事件方法的Document对象。请改用DirectContent的{​​{1}}。

规则#3:阅读documentation并查看示例和问答标记headerfooter

您会注意到您的问题与以下内容重复:

这回答了你的问题:请建议使用页眉和页脚的最佳方式。

关于“边距无法正常工作”的问题可能会在这里得到解答:Why is my content overlapping with my footer?但是,说“边距无法正常工作”并不是一个实际问题。如果我告诉我的医生:“我感觉不舒服,请帮助我!”如果我不给他更多信息,我不能指望他帮助我。当我添加页眉和页脚时,边距正常工作。如果它对你不起作用,你做错了......

对于您的页眉和页脚“仅在首页上显示的指控也是如此。”从我们的观点来看,这根本不是真的。如果您将事件添加到PdfWriter,请执行以下操作:

PdfWriter

然后每次完成页面时都会调用PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); Header event = new Header(); writer.setPageEvent(event); 方法。