1

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

}

}

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

4

2 回答 2

1

您可以使用 2-pass 方法:

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

  • 第二遍:在除最后一页之外的所有页面上标记页眉

看看这个取自 iText 书的例子。你只需要通过 N-1 的第一页来调整第二遍:

int n = reader.getNumberOfPages() - 1;

代替

int n = reader.getNumberOfPages();
于 2012-05-11T09:33:32.037 回答
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);

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

于 2020-01-28T09:40:44.297 回答