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 パス アプローチを使用できます。

  • 1 回目のパス: ヘッダーなしで PDF ファイルを生成する

  • 2 回目のパス : 最後のページ以外のすべてにヘッダーをスタンプします。

iText book から取ったこの例を見てください。N-1 の最初のページのみを通過して、2 番目のパスを適応させる必要があります。

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 に答える