我正在使用iText生成PDF,因为我正在显示页眉和页脚。现在我要删除特定页面的标题。
例如:如果我要生成50页的pdf,那么在最后50天内,我不想显示标题,如何实现?
这是我在其中生成页脚的代码(页眉部分已删除)。
public class HeaderAndFooter extends PdfPageEventHelper {
public void onEndPage (PdfWriter writer, Document document) {
Rectangle rect = writer.getBoxSize("art");
switch(writer.getPageNumber() % 2) {
case 0:
case 1:
ColumnText.showTextAligned(writer.getDirectContent(),
Element.ALIGN_CENTER, new Phrase(String.format("%d", writer.getPageNumber())),
300f, 62f, 0);
break;
}
}
}
有什么建议吗?预先感谢。
您可以使用两遍方法:
第一遍:生成不带标题的PDF文件
第二遍:在最后一页以外的所有页面上标记标题
请看此示例,摘自iText书。您只需要通过浏览N-1第一页就可以适应第二遍:
int n = reader.getNumberOfPages() - 1;
而不是
int n = reader.getNumberOfPages();
我也需要这样做。我想分享我如何解决此问题。
这个想法是,为了自动生成页眉页脚,我们在PDFWriter上设置了页面事件,例如:
HeaderAndFooter event= new HeaderAndFooter(); //HeaderAndFooter is the implementation of PdfPageEventHelper class
writer.setPageEvent(event);// writer is the instance of PDFWriter
因此,在最后一页的内容之前,我们可以删除事件:
event=null;
writer.setPageEvent(event);
它对我有用,没有任何错误或异常。