Alex Gordon

Generating a PDF: Basics of Creating a Datatable with ITEXTSHARP In C#

Document document = new Document(PageSize.A4, 0, 0, 50, 50);
System.IO.MemoryStream msReport = new System.IO.MemoryStream();

try {
// creation of the different writers
PdfWriter writer = PdfWriter.GetInstance(document, msReport);

// we add some meta information to the document
document
.AddTitle("My Title");
document
.AddAuthor("Me");
document
.Open();

for (int i = 1; i <= 5; i++)
{
document
.NewPage();
iTextSharp
.text.Table datatable = new iTextSharp.text.Table(3);
datatable
.Padding = 2;
datatable
.Spacing = 0;
float[] headerwidths = { 6, 20, 32 };
datatable
.Widths = headerwidths;
datatable
.DefaultHorizontalAlignment = Element.ALIGN_LEFT;
datatable
.AddCell(i.ToString());
datatable
.AddCell("This is my name.");
datatable
.AddCell("0123456789");

datatable
.AddCell("No");
datatable
.AddCell("Yes");
datatable
.AddCell("No");

document
.Add(datatable);
}
}
catch (Exception e) {
Console.Error.WriteLine(e.Message);
}

// we close the document
document
.Close();

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=Export.pdf");
Response.ContentType = "application/pdf";
Response.BinaryWrite(msReport.ToArray());
Response.End();

We've declared above a 3-column data table:

iTextSharp.text.Table(3)
You MUST have a total cell count that is a multiple of 3, otherwise the entire table will not show up. If we know we are missing one we simple can do:

datatable.AddCell("");