Document doc = new Document(iTextSharp.text.PageSize.LETTER, 25, 25, 25, 25); //tworzymy nowy dokument, określamy typ i marginesy
PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(test.pdf,FileMode.Create)); //deklarujemy writer zapisujący dokument w pliku
doc.Open(); //otwieramy dokument
doc.NewPage(); //tworzymy pierwszą stronę w dokumencie (następne jeśli będą potrzebne tworzą się automatycznie)
Rectangle pageSize = doc.PageSize; //deklarujemy obszar, który będziemy wypełniać w dokumencie
PdfPTable tableTest = new PdfPTable(3); //tworzymy tabelę z trzema kolumnami
tableTest.SetWidthPercentage(new float[] {30, 30, 30}, pageSize); //deklarujemy procentowo szerokość każdej z kolumn
tableTest.HeaderRows = 1; // <---ważne ...określasz jeden (pierwszy) wiersz tabeli jako nagłówek - przepisywany będzie na początku każdej strony jako pierwszy wiersz
tableTest.WidthPercentage = 100F; //ustawiamy szerokość tabeli - procentowo
PdfPCell komorka1 = new PdfPCell(new iTextSharp.text.Paragraph("Kolumna1Nazwa", font)); //tworzymy komórkę i dodajemy ją do tabeli
tableTest.AddCell(komorka1);
PdfPCell komorka2 = new PdfPCell(new iTextSharp.text.Paragraph("Kolumna2Nazwa", font)); //tworzymy komórkę i dodajemy ją do tabeli
tableTest.AddCell(komorka2);
PdfPCell komorka3 = new PdfPCell(new iTextSharp.text.Paragraph("Kolumna3Nazwa", font)); //tworzymy komórkę i dodajemy ją do tabeli
tableTest.AddCell(komorka3);
dla takiej tabeli tworzysz pętlę, która będzie wypełniała kolejne rekordy(wiersze) w tabeli i wypełniamy na takiej samej zasadzie jak wyżej...
//np. foreach dla wszystkich elementów z listy, dataset itd.
{
PdfPCell komorka1 = new PdfPCell(new iTextSharp.text.Paragraph(TUTAJ DANE KTÓRE MA WSTAWIĆ W POSTACI STRING, font));
tableTest.AddCell(komorka1);
PdfPCell komorka2 = new PdfPCell(new iTextSharp.text.Paragraph(TUTAJ DANE KTÓRE MA WSTAWIĆ W POSTACI STRING, font));
tableTest.AddCell(komorka2);
PdfPCell komorka3 = new PdfPCell(new iTextSharp.text.Paragraph(TUTAJ DANE KTÓRE MA WSTAWIĆ W POSTACI STRING, font));
tableLab.AddCell(komorka3);
doc.Add(tableTest);
doc.Close();
}
(kod przerabiany w locie, nie kompilowany, także mógł się jakiś błąd wkraść, ale ogólna idea tworzenia prostej dynamicznej tabeli w iTextSharp utrzymana)
...zadeklarować musisz jeszcze font przed jego wykorzystaniem.
Tak zbudowana tabela będzie przerzucała wiersz na następną stronę trzymając się ustalonego marginesu, kontynuacja tabeli będzie rozpoczynać się wierszem z nazwami kolumn, a chyba o to Ci chodziło.
Ja tak buduje dynamiczne tabele przy użyciu iTextSharp 4.0.2