2012-10-03 42 views
2

我以下列方式PdfTable:最後一個單元格是不可見的

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)的使用數量PdfPTable。 但是,當我想創建一個3列但4個單元格的表 - 最後一行不可見。

如何解決這樣的問題?因爲最後一行是不完整的

iTextSharp的5.3.3.0

回答

6

要解決這個問題和其他人,我推薦使用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); 
+0

謝謝!問題解決了 – user1717140

+0

這個工作,除了CompleteRow通過放置一個列中有一個邊框,並且我無法撤消該列。我最終需要做的是知道我有多少列,並設置了列跨度,或者知道我有多少個單元格,並添加了沒有邊框設置的空白單元格的數量。 –

+2

您只需添加'myTable.DefaultCell.Border = Rectangle.NO_BORDER;'爲CompleteRow方法創建沒有邊框的單元格。 –

1

的最後一行是不可見的。對於3列和4格的情況,您需要再添加2個空單元格以使最後一行完成。

2

您可以填寫最後一行直到它被填充,或者您也可以將其設置爲ColumnSpan以佔據空的空間。

相關問題