2

私は次のようにPdfPTableを使用します

var myTable = new PdfPTable( 3 );

foreach(var nextString in myStrings)
{

var nextCell = new PdfPCell( new Phrase( nextString, smallFont ) );
nextCell.Border = Rectangle.NO_BORDER;
nextCell.AddCell(nextCell);
}

pdfDocument.Add(myTable);

すべてが完璧で、総セル数に列数を掛けます(3)。しかし、3列で4セルのテーブルを作成したい場合、最後の行は表示されません。

そのような問題を解決する方法は?

itextsharp 5.3.3.0

4

4 に答える 4

9

この問題や他の問題を解決するには、このPdfPTable方法の使用をお勧めしますCompleteRow()

これにより、不完全な行に追加のセルが追加され、生成されたPDFに表示されるようになります。

通常、不完全な行は論理エラーになりますが、を使用CompleteRow()することで、これらのエラーが発生した場所を簡単に特定し、修正することができます。

あなたの例に関して:

var myTable = new PdfPTable( 3 );

foreach(var nextString in myStrings)
{
    var nextCell = new PdfPCell( new Phrase( nextString, smallFont ) );
    nextCell.Border = Rectangle.NO_BORDER;
    nextCell.AddCell(nextCell);
}

myTable.CompleteRow();

pdfDocument.Add(myTable);
于 2012-10-03T22:47:44.340 に答える
2

最後の行がいっぱいになるまで埋めるかColumnSpan、空のスペースを占めるように設定することもできます。

于 2012-10-03T13:37:59.397 に答える
1

最後の行が完全ではないため、最後の行は表示されません。3列と4セルの場合、最後の行を完成させるには、さらに2つの空のセルを追加する必要があります。

于 2012-10-03T13:35:28.173 に答える
0

CompleteRow()メソッドはそのことを行います。これにより、PDFの最後に空のセルが追加されますが、境界線のある空のセルが表示されます。したがって、この動作を回避するにはDefaultCell.Border = Rectangle.NO_BORDER、メソッドを呼び出す前に設定する必要がありますCompleteRow()

var myTable = new PdfPTable( 3 );

foreach(var nextString in myStrings)
{

    var nextCell = new PdfPCell( new Phrase( nextString, smallFont ) );
    nextCell.Border = Rectangle.NO_BORDER;
    nextCell.AddCell(nextCell);
}
myTable.DefaultCell.Border = Rectangle.NO_BORDER;
myTable.CompleteRow();

pdfDocument.Add(myTable);
于 2019-02-15T05:44:46.680 に答える