2010-09-29 6 views
2

У меня возникли проблемы с перетаскиванием таблиц с помощью iTextSharp.Абсолютное позиционирование iTextSharp (GridView)

У меня есть несколько таблиц (из gridviews), которые я хотел бы написать в pdf с помощью iTextSharp.

Я хотел бы иметь только 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

Смежные вопросы