Create Simple PDF File Using iTextSharp Library

In this article I will show you how to create a simple PDF file using the iTextsharp library.

iTextSharp

iTextSharp is a library that allows you to create and manipulate PDF documents.

It enables developers looking to enhance web applications and other applications with dynamic PDF document generation and/or manipulation.

Before proceeding you should have the iTextSharp library file.

You can download the iTextSharp.dll from http://itextpdf.com/download.php.

  1. Open VisualStudio and then create a new ASP.NET web application.
  2. Add a reference to the iTextSharp.dll file to your project.
  3. Add the following namespaces before proceeding:
     

    using System;

    using iTextSharp.text.pdf;

    using System.IO;

    using iTextSharp.text;

    using System.Diagnostics;

  4. In the designer, drag and drop two buttons as follows:

    iTextSharp.jpg
     
  5. For the Generate PDF File button, write the following code to generate the PDF file:

    protected
    void btnGeneratePDFFile_Click(object sender, EventArgs e)

    {

        //Create document

        Document doc = new  Document();
        //Create PDF Table

        PdfPTable tableLayout = new PdfPTable(4);

     

        //Create a PDF file in specific path

        PdfWriter.GetInstance(doc, new FileStream(Server.MapPath("Sample-PDF-File.pdf"), FileMode.Create));

     

        //Open the PDF document

        doc.Open();

     

        //Add Content to PDF

        doc.Add(Add_Content_To_PDF(tableLayout));

     

        // Closing the document

        doc.Close();

     

        btnOpenPDFFile.Enabled = true;

        btnGeneratePDFFile.Enabled = false;

    }

    private PdfPTable Add_Content_To_PDF(PdfPTable tableLayout)

    {

        float[] headers = { 20, 20, 30, 30 };  //Header Widths

        tableLayout.SetWidths(headers);        //Set the pdf headers

        tableLayout.WidthPercentage = 80;       //Set the PDF File witdh percentage

     

       //Add Title to the PDF file at the top

       tableLayout.AddCell(new PdfPCell(new Phrase("Creating PDF file using iTextsharp", new Font(Font.HELVETICA, 13, 1, new iTextSharp.text.Color(153, 51, 0)))) { Colspan = 4, Border = 0, PaddingBottom = 20, HorizontalAlignment = Element.ALIGN_CENTER });         

     

       //Add header

       AddCellToHeader(tableLayout, "Cricketer Name");

       AddCellToHeader(tableLayout, "Height");

       AddCellToHeader(tableLayout, "Born On");

       AddCellToHeader(tableLayout, "Parents");           

     

       //Add body

       AddCellToBody(tableLayout, "Sachin Tendulkar");

       AddCellToBody(tableLayout, "1.65 m");

       AddCellToBody(tableLayout, "April 24, 1973");

       AddCellToBody(tableLayout, "Ramesh Tendulkar, Rajni Tendulkar");

     

       AddCellToBody(tableLayout, "Mahendra Singh Dhoni");

       AddCellToBody(tableLayout, "1.75 m");

       AddCellToBody(tableLayout, "July 7, 1981");

       AddCellToBody(tableLayout, "Devki Devi, Pan Singh");

     

       AddCellToBody(tableLayout, "Virender Sehwag");

       AddCellToBody(tableLayout, "1.70 m");

       AddCellToBody(tableLayout, "October 20, 1978");

       AddCellToBody(tableLayout, "Aryavir Sehwag, Vedant Sehwag");

     

       AddCellToBody(tableLayout, "Virat Kohli");

       AddCellToBody(tableLayout, "1.75 m");

       AddCellToBody(tableLayout, "November 5, 1988");

       AddCellToBody(tableLayout, "Saroj Kohli, Prem Kohli");

     

       return tableLayout;

    }

     

    // Method to add single cell to the header

    private static void AddCellToHeader(PdfPTable tableLayout,string cellText)

    {          

        tableLayout.AddCell(new PdfPCell(new Phrase(cellText, new Font(Font.HELVETICA, 8, 1, iTextSharp.text.Color.WHITE))) {HorizontalAlignment = Element.ALIGN_CENTER, Padding=5, BackgroundColor = new iTextSharp.text.Color(0, 51, 102) });

    }

     

    // Method to add single cell to the body

    private static void AddCellToBody(PdfPTable tableLayout, string cellText)

    {           

        tableLayout.AddCell(new PdfPCell(new Phrase(cellText, new Font(Font.HELVETICA, 8, 1, iTextSharp.text.Color.BLACK))) { HorizontalAlignment = Element.ALIGN_CENTER,Padding = 5, BackgroundColor = iTextSharp.text.Color.WHITE });

    }

    Don't be confused by the code above, I am extracting the methods for reusability purposes.

    I will explain whats happening in the preceding methods.

    btnGeneratePDFFile_Click

    In this method I am creating the PDF file in a specific location. Then I am calling the Add_Content_To_PDF method.

    Add_Content_To_PDF

    In this method I am giving the sizes of the cells as well as PDF file width and then I am adding content to the PDF file usigng the two methods AddCellToHeader and AddCellToBody.

    AddCellToHeader

    In this mehtod I am adding a single cell to the PDF header with some style.

    AddCellToBody

    In this mehtod I am adding a single cell to the PDF body with some style. 

  6. Now in the Open PDF button click write the following code to open the PDF that has been created:

    protected
    void btnOpenPDFFile_Click(object sender, EventArgs e)
    {
        //Open the PDF file
        Process.Start(Server.MapPath("Sample-PDF-File.pdf"));
        btnGeneratePDFFile.Enabled = true;
        btnOpenPDFFile.Enabled = false;
    }

  7. Save the files and run the project. Click on Generate PDF; your PDF file will be generated. Then click on the Open PDF file, you will get the created PDF.
     
  8. If your code is not working then I have added a project to this article you can download and test. 

So in this way we can create a PDF simply by using the iTextSharp library.

Up Next
    Ebook Download
    View all
    Learn
    View all