2010-09-29 6 views
2

Je rencontre des problèmes avec les tables de chevauchement utilisant iTextSharp.Positionnement absolu iTextSharp (GridView)

J'ai plusieurs tables (de gridviews) que je voudrais écrire en pdf using iTextSharp.

Je voudrais seulement avoir un écart de 10px entre chaque table (verticalement), et la hauteur des tables diffèrent toujours.

Est-ce que quelqu'un a un article que je peux lire pour m'aider avec ce scénario? Ou un conseil? Le positionnement absolu ne fonctionne pas pour moi.

Répondre

6

Vous pouvez placer chacune de vos tables dans un iTextSharp.text.Paragraph et utiliser la propriété SpacingAfter de l'objet Paragraph pour créer votre espace.

Comme cette méthode d'essai:

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(); 
    } 
} 

Cela devrait montrer ce que vous pouvez faire. Essayez d'ajouter et de supprimer des lignes dans cette première table; vous verrez que l'espace entre les deux tables est toujours là et ne change pas.

+0

Merde, merci beaucoup! lol. – Kukoy

Questions connexes