4

iTextSharp v5.3を使用して、同じセルを持つ1つ以上のテーブルを含むPDFを作成していますが、動的コンテンツのために高さが異なる場合があります。現在、aPdfPTableが大きすぎて現在のページに収まらない場合、テーブルは壊れており、残りのセルデータは次のページに表示されます。テーブルが収まらない場合は、すべてを次のページに 配置するようにiTextSharpに指示する方法はありますか?

悪いテーブルブレイク

いじってみましたが、効果がありませんSplitRowsSplitLateまた、ドキュメントにを追加した後にいくつかの計算を試みましたがPdfPTable、ページ上の「カーソル位置」を取得する方法がわかりません。ループ内の現在のページの高さを追跡し、すべての計算を自分で行う必要がありますか?

4

4 に答える 4

4

テーブルの全高を尋ねることができます。これは次のように行われます。table.TotalHeight

高さが 0 の場合は、最初に幅を定義したことを確認してください。iText は、テーブルをレンダリングするために使用できる幅がわからない場合、幅を計算できません。

高さがわかったら、作家に垂直位置を尋ねます。writer.GetVerticalPosition(true)

ご存じのとおり、ページの下部では Y 座標は 0 です。垂直位置からページ全体の高さを差し引いた値がマージン サイズを超える場合は、表が収まらないことがわかり、新しいページをトリガーできます。

于 2013-01-03T08:44:30.340 に答える
2

Bruno Lowagie が正しい解決策を指摘しました。テーブルが大きすぎる場合でも、テーブルをページに縮小する可能性を追加したいと考えています。ここを見てください: PdfPtable を「縮小」することは可能ですか?

于 2013-01-03T10:54:57.167 に答える