特定页面的iText Pdf标头删除

问题描述 投票:1回答:2

我正在使用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 pdf-generation itext
2个回答
1
投票

您可以使用两遍方法:

  • 第一遍:生成不带标题的PDF文件

  • 第二遍:在最后一页以外的所有页面上标记标题

请看此示例,摘自iText书。您只需要通过浏览N-1第一页就可以适应第二遍:

int n = reader.getNumberOfPages() - 1;

而不是

int n = reader.getNumberOfPages();

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

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

© www.soinside.com 2019 - 2024. All rights reserved.