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

sau*_*abh 4 pdf header footer itextsharp

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

我正在覆盖 PdfPageEventHelper 类的 OnStartPage/OnEndPage 事件。

请建议合并页眉和页脚的最佳方式。

谢谢

Bru*_*gie 5

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

规则#2:不要向Document作为参数传递给事件方法的对象添加内容。使用DirectContentPdfWriter代替。

规则 #3:阅读文档并查看示例和问答标记的页眉页脚

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

这回答了您的问题:请建议合并页眉和页脚的最佳方式。

您关于“边距无法正常工作”的问题可能在这里得到解答:为什么我的内容与页脚重叠?但是,说“边距无法正常工作”并不是一个实际问题。如果我告诉我的医生:“我感觉不舒服,请帮帮我!” 如果我不给他更多信息,我就不能指望他来帮助我。当我添加页眉和页脚时,边距正常工作。如果它对你不起作用,那你就做错了......

您关于页眉和页脚“仅显示在第一页”的指控也是如此从我们的角度来看,这根本不是真的。如果您将事件添加到PdfWriter这样的:

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
Header event = new Header();
writer.setPageEvent(event);
Run Code Online (Sandbox Code Playgroud)

然后OnEndPage()每次完成页面时都会调用该方法。