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
here.
- Open VisualStudio and then create a new ASP.NET web application.
- Add a reference to the iTextSharp.dll file to your project.
- Add the following namespaces before proceeding:
- using System;
- using iTextSharp.text.pdf;
- using System.IO;
- using iTextSharp.text;
- using System.Diagnostics;
- In the designer, drag and drop two buttons as follows,
- For the Generate PDF File button, write the following code to generate the PDF file:
- protected void btnGeneratePDFFile_Click(object sender, EventArgs e) {
-
- Document doc = new Document();
-
- PdfPTable tableLayout = new PdfPTable(4);
-
- PdfWriter.GetInstance(doc, new FileStream(Server.MapPath("Sample-PDF-File.pdf"), FileMode.Create));
-
- doc.Open();
-
- doc.Add(Add_Content_To_PDF(tableLayout));
-
- doc.Close();
- btnOpenPDFFile.Enabled = true;
- btnGeneratePDFFile.Enabled = false;
- }
- private PdfPTable Add_Content_To_PDF(PdfPTable tableLayout) {
- float[] headers = {
- 20,
- 20,
- 30,
- 30
- };
- tableLayout.SetWidths(headers);
- tableLayout.WidthPercentage = 80;
-
- 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
- });
-
- AddCellToHeader(tableLayout, "Cricketer Name");
- AddCellToHeader(tableLayout, "Height");
- AddCellToHeader(tableLayout, "Born On");
- AddCellToHeader(tableLayout, "Parents");
-
- 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;
- }
-
- 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)
- });
- }
-
- 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.
- 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)
- {
-
- Process.Start(Server.MapPath("Sample-PDF-File.pdf"));
- btnGeneratePDFFile.Enabled = true;
- btnOpenPDFFile.Enabled = false;
- }
- 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.
- 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.