0

私はPDFドキュメントを持っており、通常、各ページには、ページ番号の前にページが含まれるべき章またはセクションの名前が付いたフッターがスタンプされています。ただし、場合によっては、ページ数。

現在のセクションのフッタースタンプを維持する必要がありますが、大きなテーブルが複数のページにまたがっているため、それらのページには前のセクションのフッタースタンプがスタンプされ、テーブルが表示される最後のページに現在のセクションのフッタースタンプ。

誰かが現在のセクションのチャプター/セクションフッタースタンプを設定および維持するための解決策を思い付くことができれば、それは素晴らしいことです。

*追加* これがonEndPageオーバーライドのコードです。

public override void OnEndPage(PdfWriter writer, Document document)
{
    base.OnEndPage(writer, document);

    if ((pagenumber - 1) >= 1)
    {
        String text = footer + pagenumber.ToString();
        float len = bf.GetWidthPoint(text, 8);

        Rectangle pageSize = document.PageSize;

        cb.SetRGBColorFill(100, 100, 100);

        cb.BeginText();
        cb.SetFontAndSize(bf, 8);
        cb.SetTextMatrix(pageSize.GetRight(100), pageSize.GetBottom(20));
        cb.ShowText(text);
        cb.EndText();
        if (this.currentChapter > this.totalChapters)
        {
            pagenumber = 0;
        }
        else
        {
            pagenumber++;
        }
    }
    else
    {
        pagenumber++;
    }
}

表紙があるので、ドキュメントのヘッダーとフッターの情報の追加をスキップします。さまざまな部分が異なる情報であるため、さまざまな領域に基づいてそれらを章とサブセクションに分割しました。また、ユーザーはデータベース情報から生成された多数のPDFを一度に印刷するオプションがあります。また、各章の冒頭で、次のコマンドを使用してフッターテキストを設定しました。

this.PageEventHandler.footer = "(Part 1) - Page: ";

または少なくとも私はしようとしています。2番目のセクション(雇用履歴)を行う場合、人が雇用履歴のさまざまな部門で頻繁に入れ替わった場合、かなりの記録を積み上げることができ、それはいくつかのページに溢れます。

4

1 に答える 1

1

これを行う 1 つの方法は、 を使用PdfPageEventsして、処理される各ページとしてフッターを追加することです。ドキュメントは Java バージョン用ですが、メソッドをオーバーライドする必要がありますonEndPage

iTextPDF - PdfPageEvent

于 2012-11-22T13:51:53.367 に答える