iTextSharp を使用して PDF ドキュメントを作成しています。いくつかの列を持つ新しいテーブルを作成する方法はわかりますが、新しい列を動的に追加する方法はわかりません。私が抱えている問題は、すぐに必要な列の数がわからないため、列を追加し続ける必要があることです
または、列を追加する必要があるたびにテーブルを再作成する必要がありますか?
サンクスマット
iTextSharp を使用して PDF ドキュメントを作成しています。いくつかの列を持つ新しいテーブルを作成する方法はわかりますが、新しい列を動的に追加する方法はわかりません。私が抱えている問題は、すぐに必要な列の数がわからないため、列を追加し続ける必要があることです
または、列を追加する必要があるたびにテーブルを再作成する必要がありますか?
サンクスマット
その場合、必要なテーブルを含む中間モデルを作成し、PDF テーブルを作成することは理にかなっていると思いませんか?
大変な作業のように聞こえることは承知していますが、長い目で見れば、行と列を作成するときに動的に変更し、最後にテーブルを「コンパイル」して吐き出すことができるという点で役立つはずです。 PdfPTable オブジェクトを取り出しますか?
PdfPTable テーブルは、一度作成されると列数が増える限り不変です。
私が考えることができる唯一の回避策は、列の束全体から始めることです...いいえ、どちらも機能しません。既存の行にセルを追加することさえできません。列のスパンをいじって、余分な列をマスクし、行にセルを追加するときにそれらを調整できると思っていましたが、それもうまくいきません。
列を追加するときは、テーブルを再構築する必要があります。それを回避する方法はありません。
データを「ドライラン」する必要がある場合でも、最初にテーブルを作成する前に、列数を決定する方法を理解することを強くお勧めします。いくつかの中間形式 (String[][] など) を使用してデータを保持し、そこからテーブルを作成します。データはそのままではありません。または、少なくとも必要な列の数を追跡します。
膨大な量のデータを考えると、単一のパスは実用的/不可能な場合があります。ただし、テーブル全体を数回再構築することは、それほど良いことではありません。これは実際には、あなただけが答えるべき情報を持っているパフォーマンス チューニングの質問です。
ITextSharp テーブルは、HTML テーブルとは異なる方法で動作します (慣れていると思います)。
必要なのは、持っている列の数だけで、セルを追加し続けます。
5 列の pdfptable を作成するとします。追加する 5 番目のセルは 1 行目にあり、6 番目のセルは 2 行目の 1 列目にあります。
これの唯一の欠点は、すべてのセルが入力されていない行を追加する必要がある場合ですが、通常、空のセルまたはスペースのあるセルを追加するだけでこれを回避できます。