2010-09-29 40 views
2

我在使用iTextSharp重疊表時遇到問題。iTextSharp絕對定位(GridView)

我有多個表格(來自gridviews),我想用iTextSharp寫入pdf。

我想每個表之間只有10px的間距(垂直方向),並且表的高度總是不同。

有沒有人有文章我可以閱讀,以幫助我與這種情況?或者有什麼建議?絕對定位不適合我。

回答

6

您可以將每個表格放在iTextSharp.text.Paragraph中,並使用Paragraph對象的SpacingAfter屬性來創建您的空白。

像這種測試方法:

private static void DemoTableSpacing() { 
    using (FileStream fs = new FileStream("SpacingTest.pdf", FileMode.Create)) { 

     Document doc = new Document(); 
     PdfWriter.GetInstance(doc, fs); 
     doc.Open(); 

     Paragraph paragraphTable1 = new Paragraph(); 
     paragraphTable1.SpacingAfter = 15f; 

     PdfPTable table = new PdfPTable(3); 
     PdfPCell cell = new PdfPCell(new Phrase("This is table 1")); 
     cell.Colspan = 3; 
     cell.HorizontalAlignment = 1; 
     table.AddCell(cell); 
     table.AddCell("Col 1 Row 1"); 
     table.AddCell("Col 2 Row 1"); 
     table.AddCell("Col 3 Row 1"); 
     //table.AddCell("Col 1 Row 2"); 
     //table.AddCell("Col 2 Row 2"); 
     //table.AddCell("Col 3 Row 2"); 
     paragraphTable1.Add(table); 
     doc.Add(paragraphTable1); 

     Paragraph paragraphTable2 = new Paragraph(); 
     paragraphTable2.SpacingAfter = 10f; 

     table = new PdfPTable(3); 
     cell = new PdfPCell(new Phrase("This is table 2")); 
     cell.Colspan = 3; 
     cell.HorizontalAlignment = 1; 
     table.AddCell(cell); 
     table.AddCell("Col 1 Row 1"); 
     table.AddCell("Col 2 Row 1"); 
     table.AddCell("Col 3 Row 1"); 
     table.AddCell("Col 1 Row 2"); 
     table.AddCell("Col 2 Row 2"); 
     table.AddCell("Col 3 Row 2"); 
     paragraphTable2.Add(table); 
     doc.Add(paragraphTable2); 
     doc.Close(); 
    } 
} 

這應該告訴你可以做什麼。嘗試添加和刪除第一個表中的行;你會看到兩個表格之間的空間總是在那裏,並沒有改變。

+0

廢話,非常感謝你!大聲笑。 – Kukoy 2010-09-30 16:07:36