あなたの質問には矛盾があります。意味不明なことを説明しよう。
PdfPTable
という名前のオブジェクトがあるとしますtable
。にセルを追加するとtable
、オブジェクトが大きくなります。大量のデータがメモリに保存されます。
セルを追加しているときに、ページ上の行の Y 位置を知りたいとします。
どのページ?ページさえないかもしれませんか?オブジェクトを構築する限り、table
ページはなく、Y 位置もありません。幅が 400pt のページに追加すると、1 つのテーブルの高さが 200pt になる可能性があります。幅が 200pt のページに同じテーブルを追加すると、高さが 400pt になる可能性があります。table
オブジェクトを に追加するまではDocument
、テーブルの形状は得られません。
「タイトル」がページの最後の行にならないようにしたい場合は、表を小さな部分に分割する必要があります。サブテーブルを作成し、ドキュメントに追加します。今すぐ使用getVerticalPosition()
して、どれだけのスペースが残っているかを確認してください。次のサブテーブルの最初の X 行に十分なスペースがない場合は、a に移動してnewPage()
そこに次のテーブルを追加します。それ以外の場合は、現在のページにテーブルを追加します。
幅を正しく定義すると、複数のテーブルを追加していることに誰も気付かなくなります。異なる小さなテーブルではなく、1 つの大きなテーブルを追加したように見えます。サブテーブルの行の高さを計算する方法がわからない場合は、テーブルの合計幅を定義して幅をロックする必要があることに注意してください。上で説明した理由により、テーブルの幅に関する情報がない場合、ソフトウェアはテーブルの高さを計算できません。