3

iTextSharp を使用して請求書を作成しています。これはうまく表示されますが、請求書の項目の数量が多い場合、集計部分 (小計、税、割引、総計などを表示する部分) が分割されることがあります。現在のページに表示されるものと、次のページに移動するものがあります。現在の高さが足りない場合は、要約部分全体を次のページに移動することを考えていました。

ただし、そのためには、(現在のページ コンテンツのレンダリング後に) ページの高さがどれだけ残っているかを知る必要があります。誰かがページの現在の左の高さを計算する方法を知っているのだろうか? または、pdfPTable に、テーブル全体を強制的に印刷し、複数のページに分割させないプロパティがある場合! 2番目のオプションが利用可能であれば、それは簡単だと思います.

要約すると、残りのページの高さを計算できるかどうか、またテーブルが複数のページに分割されないようにすることができるかどうかを知る必要があります。

ありがとうございました。サミールズ

4

3 に答える 3

11

セルデータの自動ページ分割が制限を超えないようにSplitLate設定できます。false

......
table.addCell(cellData);

table.SplitLate = false;
......
于 2011-10-18T05:46:46.543 に答える
1

要約セクションには、ネストされたテーブルを使用することをお勧めします。iText が特定のセルをページ境界で分割するとは思わないため、そのセル内のすべてが (独自のセルを含むネストされたテーブルであっても) 同じページにとどまります。

テーブルのセルの行スパンを使用して、それ自体で行全体を占めるようにします。

確信はありませんが、ビールを賭けたいと思います。

于 2010-12-28T20:48:57.380 に答える
0

データを PDF に追加するために使用しているオブジェクトは何ですか? MultiColumnText、段落、フレーズ?

Document.PageSize.Height プロパティを使用してページの高さを返すことができるはずです。

次に、PDFPTable.Height を使用してテーブルの高さを返します。

したがって、ロジック Document.PageSize.Height - table.Height を使用するだけで、残りの y 軸スペースを利用できます。

PDFPTable オブジェクトには、SplitLate および SplitRows という名前のプロパティがあります。これらのプロパティを使用して、テーブルを 1 ページに収めることができると思います。

于 2010-10-14T13:52:21.530 に答える