0

ItextSharp を使用して pdfptable を作成していますが、セルを追加しているときに、ページ内の Y 位置を知る必要があります。セルの高さは可変です。これがテーブルの最後の行に表示される場合は、新しいページに移動する必要があるため (顧客の要求に応じて)、テーブルに新しい「速報タイトル」を配置することを避けるために、それを知る必要があります。writer.getverticalPosition() を試してみましたが、テーブルの作成には信頼性がないようです。

それを知る方法はありますか?

4

1 に答える 1

1

あなたの質問には矛盾があります。意味不明なことを説明しよう。

PdfPTableという名前のオブジェクトがあるとしますtable。にセルを追加するとtable、オブジェクトが大きくなります。大量のデータがメモリに保存されます。

セルを追加しているときに、ページ上の行の Y 位置を知りたいとします。

どのページ?ページさえないかもしれませんか?オブジェクトを構築する限り、tableページはなく、Y 位置もありません。幅が 400pt のページに追加すると、1 つのテーブルの高さが 200pt になる可能性があります。幅が 200pt のページに同じテーブルを追加すると、高さが 400pt になる可能性があります。tableオブジェクトを に追加するまではDocument、テーブルの形状は得られません。

「タイトル」がページの最後の行にならないようにしたい場合は、表を小さな部分に分割する必要があります。サブテーブルを作成し、ドキュメントに追加します。今すぐ使用getVerticalPosition()して、どれだけのスペースが残っているかを確認してください。次のサブテーブルの最初の X 行に十分なスペースがない場合は、a に移動してnewPage()そこに次のテーブルを追加します。それ以外の場合は、現在のページにテーブルを追加します。

幅を正しく定義すると、複数のテーブルを追加していることに誰も気付かなくなります。異なる小さなテーブルではなく、1 つの大きなテーブルを追加したように見えます。サブテーブルの行の高さを計算する方法がわからない場合は、テーブルの合計幅を定義して幅をロックする必要があることに注意してください。上で説明した理由により、テーブルの幅に関する情報がない場合、ソフトウェアはテーブルの高さを計算できません。

于 2013-02-21T15:57:33.323 に答える