Convert Datatable to PDF

Using iTextSharp,you can do it.It can be download from internet and it is free. Please, find the code below,

   public void ExportToPdf(DataTable dt,string strFilePath)
   {      
    Document document = new Document();
    PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(strFilePath, FileMode.Create));
    document.Open();
    iTextSharp.text.Font font5 = iTextSharp.text.FontFactory.GetFont(FontFactory.HELVETICA, 5);

    PdfPTable table = new PdfPTable(dt.Columns.Count);
    PdfPRow row = null;
    float[] widths = new float[dt.Columns.Count];
    for (int i = 0; i < dt.Columns.Count; i++)
        widths[i] = 4f;

    table.SetWidths(widths);

    table.WidthPercentage = 100;
    int iCol = 0;
    string colname = "";
    PdfPCell cell = new PdfPCell(new Phrase("Products"));

    cell.Colspan = dt.Columns.Count;

    foreach (DataColumn c in dt.Columns)
    {
        table.AddCell(new Phrase(c.ColumnName, font5));
    }

    foreach (DataRow r in dt.Rows)
    {
        if (dt.Rows.Count > 0)
        {
            for (int h = 0; h < dt.Columns.Count; h++)
            {
                table.AddCell(new Phrase(r[h].ToString(), font5));
            }
        }          
    }
    document.Add(table);
    document.Close();
}

You can't "convert" a DataTable to a PDF Document. But you can insert data into it as normal content.

This would have to be done through a data control, like the GridView or ListView; just like in a normal webpage. Which is why the article you have linked to does that. GridView is probably the closest and easiest way to make it aesthetically appear the same as a DataTable. As it will just be stored as a normal table in the PDF Document.

Note that the GridView is created in memory - you don't create or need to have one in your HTML page. Try and experiment with the code to understand this better.

So I recommend following the article.

Tags:

C#

Asp.Net