PdfTable: last cell is not visible

后端 未结 4 853
后悔当初
后悔当初 2020-12-21 12:46

I use PdfPTable in the following way

var myTable = new PdfPTable( 3 );

foreach(var nextString in myStrings)
{

var nextCell = new PdfPCell( new Phrase( next         


        
相关标签:
4条回答
  • 2020-12-21 12:47

    To solve this issue and others I recommend the use of the PdfPTable method CompleteRow().

    This will ensure that any incomplete rows have extra cells added to make them complete so that they show up in the generated PDF.

    Generally, an incomplete row will be a logic error however by using CompleteRow() you can easily identify where you have made these errors, and correct them.

    In terms of your example:

    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);
    
    0 讨论(0)
  • 2020-12-21 12:57

    You can either fill the last row until it's fill or you can also set it's ColumnSpan to occupy the empty space.

    0 讨论(0)
  • 2020-12-21 13:02

    The last row is not visible because the last row is not complete. In your case with 3 columns and 4 cells, you need to add 2 more empty cells to make the last row complete.

    0 讨论(0)
  • 2020-12-21 13:05

    The CompleteRow() method will do the thing. This adds an empty cell at the end of your PDF, but you will notice it displays an empty cell with border. So, in order to avoid this behaviour, you will have to set DefaultCell.Border = Rectangle.NO_BORDER before calling the CompleteRow() method.

    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);
    
    0 讨论(0)
提交回复
热议问题