我通过添加容纳多个页面的单个PdfPTable来生成PDF。 现在我想向所有这些页面添加页眉和页脚,但它只显示在第一页上。边距也无法正常工作。
我正在重写类PdfPageEventHelper的OnStartPage / OnEndPage事件。
请建议使用页眉和页脚的最佳方法。
由于
答案 0 :(得分:2)
规则#1:不要使用OnStartPage()
添加页眉或页脚。仅使用OnEndPage()
方法添加页眉和页脚。
规则#2:不要将内容添加到作为参数传递给事件方法的Document
对象。请改用DirectContent
的{{1}}。
规则#3:阅读documentation并查看示例和问答标记header和footer
您会注意到您的问题与以下内容重复:
这回答了你的问题:请建议使用页眉和页脚的最佳方式。
关于“边距无法正常工作”的问题可能会在这里得到解答: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);
方法。