我正在使用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;
}
}
}
有什么建议吗?提前谢谢。
答案 0 :(得分:1)
您可以使用2遍方法:
第一遍:生成没有标题的PDF文件
第二遍:在除最后一页之外的所有页面上标记标题
看一下从iText书中获取的这个例子。你只需要通过N-1首页来调整第二遍:
int n = reader.getNumberOfPages() - 1;
而不是
int n = reader.getNumberOfPages();
答案 1 :(得分:0)
我也需要这样做。我想分享我如何解决此问题。
这个想法是,为了自动生成页眉页脚,我们在 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);
它对我有用,没有任何错误或异常。