itextsharpといくつかのデータを次のページに移動します
-
29-09-2019 - |
質問
itextsharpを使用して請求書を作成しています。それはうまく表示されますが、時々、請求書のアイテムが数量で大きい場合、概要部分(サブテル、税、割引、総計など)が分割されます。現在のページに表示されるものがあり、次のページに移動するものもあります。現在の高さの左では不十分な場合、概要部分全体を次のページに移動することを考えていました。
ただし、そのためには、ページの高さが残っていることを知る必要があります(現在のページコンテンツのレンダリングの後)。ページの現在の左の高さを計算する方法を誰かが知っているのだろうか?または、PDFPTABLEにプロパティがある場合、テーブルが全体として自分自身を印刷するように強制し、複数のページに分割されないようにします。 2番目のオプションが利用可能であれば、簡単になると思います。
要約すると、残りのページの高さを計算できるかどうか、またそれがテーブルに複数のページに分割されないように強制することができるかどうかを知る必要があります。
ありがとうございました。サミアーズ
解決
設定できます SplitLate
に false
セルデータの自動ページの切断を回避するには、制限を超えます。
......
table.addCell(cellData);
table.SplitLate = false;
......
他のヒント
要約セクションにネストされたテーブルを使用することをお勧めします。 Itextがページの境界に特定のセルを分割するとは思わないので、そのセル内のすべてが(独自のセルを備えたネストされたテーブルであっても)同じページにとどまるでしょう。
テーブルのセルの行スパンを使用して、それ自体で行全体を占めるようにします。
確かではありませんが、ビールを賭けます。
データをPDFに追加するためにどのオブジェクトを使用していますか? MulticolumnText、段落、フレーズ?
document.pagesize.heightプロパティを使用して、ページの高さを返すことができるはずです。
次に、pdfptable.heightを使用してテーブルの高さを返します。
したがって、Logic Document.Pagesize.Height -Table.Heightを使用するだけで、残りのY軸スペースが利用可能になります。
PDFPTABLEオブジェクトには、SplitLateとSplitRowsという名前のプロパティがあります。これらのプロパティを使用できると思います 試す テーブルを1つのページに保管してください。