1

現在のページが iTextSharp で終了することを確認する方法はありますか。例えば、

「(次のページに続く)」を追加したい最初のページの最後に 2 ページを書き留める必要があるレコードが 10 件あるとします。これを行う方法はありますか。ページの終わりを見つけることでこれに対する答えになりますか、または書き込みが行われた行番号を見つける方法があるので、選択したメッセージを追加して次のページに進むかどうかを決定するための計算を行うことができます.

どんなアドバイスでも大歓迎です:)

数えきれないほどの感謝

4

2 に答える 2

2

通常、これはテーブルのフッターを定義することによって行われます。テーブルが自動的に壊れると、iTextはそのフッターを表示します。もちろん、このフッターが最後のページ(テーブルの最後の行の後)に表示されないようにする必要があります。そのため、最後の行をスキップする方法もあります。

この例は、ヘッダーとフッターを使用してテーブルを作成する方法を示しています。これはへのリンクSkipLastFooterです。

「行番号を見つける」と言うと問題が解決するというのは、次の2つの理由で間違っていることに注意してください。

  1. PDFファイルには行番号などはありません。MediaBoxがあり、座標を使用してMediaBoxによって定義されたキャンバスにコンテンツを描画します。
  2. ドキュメントにオブジェクトを追加した、ページの現在のY位置を取得する方法があります。テーブルを追加する前とテーブルを追加したにY位置を取得できますが、テーブルを作成している間は取得できません。

上で提案したものの代替ソリューションは、テーブルイベントを使用することです。

于 2013-03-03T09:56:11.570 に答える
2

本当にページの終わりを見つける必要があり、各ページの終わりに印刷されるフッター行のあるテーブルを使用していない場合は、PdfWriter次のようにオブジェクトを使用できます。

var remainingPageSpace = pdfWriter.GetVerticalPosition(false) - pdfDocument.BottomMargin;

これにより、ページの残りのスペースが得られ、そこから次に何をしたいかを決定できます。

ただし、表形式のデータを使用している場合はPdfPTable、フッター行機能を使用して利用することをお勧めします。

于 2013-03-04T04:51:12.087 に答える