2016-01-24 64 views
1

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

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

请提出合并页眉和页脚的最佳方法。

感谢

+0

请显示您的代码哪些*只显示在第一页*,以便我们可以告诉您如何解决它。 – mkl

+0

可能的[ITextSharp中的页眉和页脚]的副本(http://stackoverflow.com/questions/34484244/header-and-footer-in-itextsharp) –

回答

2

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

规则#2:不要将内容添加到作为参数传递给事件方法的Document对象。改为使用PdfWriterDirectContent

规则#3:阅读documentation,并期待在实例和Q &标示headerfooter

你会发现,你的问题是重复的:

这回答你的问题:请提出最好的方法来合并页眉和页脚。

您对“利润无法正常工作”的问题很可能在这里找到答案:Why is my content overlapping with my footer?然而,说“利润无法正常工作”不是一个真正的问题。如果我告诉我的医生:“我感觉不舒服,请帮助我!”如果我不给他更多信息,我不能指望他帮助我。当我添加页眉和页脚时,页边距工作正常。如果它不适合你,你做错了...

对于你的指称,页眉和页脚“只在第一页上显示”也是如此。从我们的观点来看,这不是真的。如果将事件添加到PdfWriter这样的:

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); 
Header event = new Header(); 
writer.setPageEvent(event); 

然后OnEndPage()方法被调用每一个页面完成时间。

+0

谢谢,现在页眉页脚出现在所有页面上。但是,我在页眉的中心对齐页眉和页脚中包含行,我试图使用html并将其转换为pdf内容,但行没有出现在页脚中,徽标移到了标题中最右侧的角落。 – saurabh