これは SO での私の最初の投稿なので、お手柔らかにお願いします :)。私は先に進み、これがどれほど曖昧に聞こえるか、およびコードが不足していることをお詫びします (これは仕事のためであり、投稿することは禁じられています)。できる限り疑似コードを作成したり、説明したりしますが、コードを表示できないという選択肢はありません。
顧客は、DB からデータを取得するレポートを求めているため、フォームに含まれるページ数を知る方法がありません。フォームには基本的に 2 つのセクションがあります。私の問題は、ヘッダーの高さが異なることです。
レポートのヘッダーの最初のページは次のように作成されます。
- レポート ヘッダー
- 追加情報 1
- 追加情報 2
- 列ヘッダー
最初のセクションの残りの部分では、追加情報 1 と追加情報 2 のテーブルが省略され、レポート ヘッダーと列ヘッダーのみが含まれているため、最初のページのヘッダーほど多くのスペースは必要ありません。しかし問題は、ヘッダーのサイズを縮小する方法がわからないことです。2 番目のセクションのヘッダーはさらに小さくなっています。
私がこれまでに試したこと:
- ページに応じて writeSelectedRows() の行数の値を変更します。
- ヘッダーの高さを小さいサイズに設定する (document.newPage() を呼び出す前に、このトピックを Google で検索していた頃に、newPage() を呼び出す前にヘッダーの高さを設定する必要があることを確認したため)
- セクションに応じてドキュメントの上余白のサイズを調整する
これのどれもうまくいきませんでした。これは信じられないほど漠然としたものであり、私が書いたことに基づいてこれに答えることができる人はおそらくいないでしょう. 私がチェックアウトできる同様の問題へのリンクを誰かが知っているかどうかを尋ねているだけだと思います。私はこのトピックをグーグルで何日も費やし、それについてたくさん読んだことがありますが、まだ何も機能していません. iText ページにある関連するすべてのチュートリアルを読みました。顧客が求めているものにまだ適合するものはありません。
おそらく ColumnText と PdfReader/PdfStamper (「2 番目のパス」シナリオ) を使用して調べましたが、ヘッダーにはさまざまなセル幅などのテーブルがあり、「2 番目のパス」 " オプションを使用しても、レポートのどのセクションにいるのかを知る方法はありません (私が知る限り)。
どんなアドバイスや助けも大歓迎です!!