私は親テーブルとして使用する1つのカラムを持つメインPdfpTableを持っています。次に、親テーブルに動的な列数で作成されたテーブルを追加します。PdfpTableセルにネストされたPdfpTableセルの両側に空白があります
したがって、各テーブルは親テーブルの行です。 私はいくつかの点を除いて私が望むものを得ています:
1)テーブルには、左右に大きな空白が追加されています。私は、サブテーブルが行スペースを埋めるようにします。
2)カラムの幅は保持されません。新しいテーブルの最初のカラムは、カラムの総数に基づいて幅を変更します。
3)メインテーブル幅は、私がパディングを削除し、各列の幅を設定する試み、および親の両方の合計幅を設定した
PdfPTable mainTable = new PdfPTable(1);
mainTable.TotalWidth = 1000f;
//Iterating through some data, get the count then create tables.
PdfPTable subTable = new PdfPTable(colCount);
//I tried setting the widths to fix issue 2
float[] colWidths = new float[colCount];
colWidths[0] = 50f;
for (int i = 1; i < colCount; i++)
{
colWidths[i] = 50f;
}
subTable.SetWidths(colWidths);
PdfPCell cell = new PdfPCell();
cell.AddElement("test");
subTable.AddCell(cell);
PdfPCell tblCell = new PdfPCell();
//tblCell.Padding = 0f;
//tblCell.PaddingLeft = 0f;
//tblCell.PaddingRight = 0f;
tblCell.AddElement(subTable);
mainTable.AddCell(tblCell);
を設定.TotalWidthの影響を受けていないようサブテーブルが混在しています。
私は完全な答えを得る時間がありませんが、混乱の1つのポイントは 'SetWidths()'セットが_relative_列の幅であるということです。"50,100"を渡すと、50単位と100単位を渡すことはありませんが、代わりに最初の列は1/3(50 /(50 + 100))を取得し、2番目の列は2/3 /(50 + 100)) 'となる。代わりに 'SetTotalWidth(float [])'と 'LockedWidth'を使いたいでしょう –