iText Pdf Header删除特定页面

时间:2012-05-11 09:16:11

标签: pdf pdf-generation itext

我正在使用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;
    }

}

}

有什么建议吗?提前谢谢。

2 个答案:

答案 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);

它对我有用,没有任何错误或异常。