Most of the computer users(Clients) are likely to have used PDF Documents. This tutorial is based on creating pdfs in asp.net(C#)
1.0 Introduction:
Most of the computer users(Clients) are likely to have used PDF Documents. This tutorial is based on creating pdfs in asp.net(C#)
2.0 Using the Code
PdfWriter.GetInstance(doc, new FileStream("c:/pdf1.pdf",FileMode.Create));
3.0 Steps to fallow
 3.1 Step 1:
Create an instance of the  iTextSharp.text.Document by writing code
iTextSharp.text.Document doc = new iTextSharp.text.Document();
 3.2 Step 2:
Create a writer that listen the document you have created and write it to your Stream.
PdfWriter.GetInstance(doc, new FileStream("c:/pdf1.pdf", FileMode.Create));
 3.3 Step 3:
Open the Document so that you can write your data to it.
doc.Open();
//you can add
Authors, header, subject to your pdf by methods
//Not recommended
doc.AddAuthor("Bill");
doc.AddSubject("Billings");
doc.AddHeader("BY jay", "BigInt");
 3.4 Step 4:
 Add Content to the document.
doc.Add(new Paragraph("Hello this is my first pdf");
 3.5 Step 5:
 Close the document.
doc.Close();
 3.6  Now result is stored at the location you specified..check it.
4.0 Classes and methods provided by iTextSharp
4.1 iTextSharp.text.Document.
public Document();
public Document(Rectangle Size);
public Document(Rectangle Size,int Left,int Right,int Top, int Bottom);
 Size object sets the Pagesize of Pdf Document
 You can create your Rectangle object with certain Borders, Backgroundcolor, 
Rectangle Size = new Rectangle(144,720);
Size.BackgroundColor = new Color(123, 12, 210);
Document document = new Document(Size);
4.2 PdfWriter
Once the document object is created, we need to create PdfWriter object
PdfWriter.GetInstance(doc, new FileStream("c:/pdf1.pdf", FileMode.Create));
4.3. Before writing actual data, you might wish to add some metadata like author, title, subject. Document  has few methods to add medata are as fallows.
doc.AddAuthor("Bill");
doc.AddSubject("Billings");
doc.AddHeader("BY jay", "BigInt");
doc.AddCreationDate();
doc.AddCreator("name");
doc.AddProducer();
doc.AddKeywords("Keywords");
4.4. Adding Watermark to report.
Watermark watermark = new Watermark(Image.getInstance("image.jpg"),
400, 600);
4.5. Cell.
Cell can be add by creating a object of Cell class and add to document using add() method of document object 
Cell cell = new Cell(new Phrase("BigInt Technologies.. ", FontFactory.GetFont(FontFactory.HELVETICA_BOLD,
24)));
cell.HorizontalAlignment = Element.ALIGN_CENTER;
cell.VerticalAlignment = Element.ALIGN_MIDDLE;
cell.Colspan = 3;
cell.Border = 1;
cell.BackgroundColor =
iTextSharp.text.Color.LIGHT_GRAY;  //System.Drawing.Color.Silver;
not work
tableLayout.AddCell(cell);
Another merhod to add cell is
Document.AddCell("Cell Value");
5.0 Examples
5.1 Example  which shows a simple pdf with Rectangle and cell values as shown in Figure 1.0
public void ExportSimplePdf()
    {
        iTextSharp.text.Document doc = new iTextSharp.text.Document();
        PdfWriter.GetInstance(doc, new FileStream("c:/pdf1.pdf", FileMode.Create));
        doc.AddAuthor("Bill");
        doc.AddSubject("Billings");
        doc.AddHeader("BY jay", "BigInt");
        doc.Open();
      
        iTextSharp.text.Table tableLayout = new iTextSharp.text.Table(3);
        float[] headers = { 10, 70, 40 };
        tableLayout.Widths = headers;
        tableLayout.WidthPercentage = 100;
        Cell cell = new Cell(new Phrase("BigInt Technologies.. ", FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 24)));
        cell.HorizontalAlignment = Element.ALIGN_CENTER;
        cell.VerticalAlignment = Element.ALIGN_MIDDLE;
        cell.Colspan = 3;
        cell.Border = 1;
        cell.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;  //System.Drawing.Color.Silver; not work
        tableLayout.AddCell(cell);
        tableLayout.DefaultColspan = 3;
        StringBuilder strInfo = new StringBuilder();
        strInfo.Append(" ID Name        : Jayant Bramhankar");
        strInfo.Append(Environment.NewLine);
        strInfo.Append(" Phone           : 9923748199");
        strInfo.Append(Environment.NewLine);
        strInfo.Append(" Adress          : Nagpure");
        strInfo.Append(Environment.NewLine);
        strInfo.Append(" Date of Birth  : 14/4/1986           Date: ");
        strInfo.Append(DateTime.Now.ToShortDateString());
        strInfo.Append(Environment.NewLine);
        strInfo.Append(" ");
        tableLayout.AddCell(strInfo.ToString());
        tableLayout.DefaultColspan = 1;
        tableLayout.AddCell("Sr.No");
        Cell cInc = new Cell(new Phrase("Incentive Types", FontFactory.GetFont(FontFactory.HELVETICA, 12)));
        cInc.HorizontalAlignment = Element.ALIGN_CENTER;
        cInc.VerticalAlignment = Element.ALIGN_MIDDLE;
        tableLayout.AddCell(cInc);
        // another method to add cell is
        // tableLayout.AddCell("Incentive Types");
        tableLayout.AddCell("Amount");
        tableLayout.AddCell("2");
        tableLayout.AddCell("Silver Zone Incentive");
        tableLayout.AddCell("2000");
        tableLayout.AddCell("3");
        tableLayout.AddCell("Golden Zone Incentive");
        tableLayout.AddCell("3000");
        tableLayout.AddCell("4");
        tableLayout.AddCell("Diamond Incentive");
        tableLayout.AddCell("4000");
        // doc.Add(new Paragraph("Hello World"));
        doc.Add(tableLayout);
        doc.Close();
    }
 5.2 Example  which shows exporting data to grid and  grid to Pdf
protected void Test2_Click(object sender, EventArgs e)
    {
        // data to gridview from database
        SqlConnection connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Administrator\Desktop\pdf blog\mlm\App_Data\TestPdf.mdf;Integrated Security=True;User Instance=True");
        try
        {
            connection.Open();
            SqlCommand cmd = new SqlCommand("Select * from  Employee", connection);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet data = new DataSet();
            da.Fill(data);
            gridDataToExport.DataSource = data.Tables[0];
            gridDataToExport.DataBind();
            Button2.Visible = true;
        }
        catch (SqlException ex) { Response.WriteFile(ex.Message); }
    }
protected void Button2_Click(object sender, EventArgs e)
    {
        iTextSharp.text.Document doc = new iTextSharp.text.Document();
        PdfWriter.GetInstance(doc, new FileStream("c:/pdf2.pdf", FileMode.Create));
        doc.AddAuthor("Bill");
        doc.AddSubject("Billings");
        doc.AddHeader("BY jay", "BigInt");
        doc.Open();
        doc.Add(ExportGridToPdf());
        doc.Close();
    }
    public PdfPTable ExportGridToPdf()
    {
        iTextSharp.text.pdf.PdfPTable tableLayout = new iTextSharp.text.pdf.PdfPTable(4);
        float[] headers = { 10, 50, 40, 40 };
        tableLayout.SetWidths(headers);
        tableLayout.WidthPercentage = 100;
        //Create header
        PdfPCell cellSr = new PdfPCell(new Phrase("Sr. No ", new Font(Font.HELVETICA, 12, 1, Color.BLUE)));
        PdfPCell cellName = new PdfPCell(new Phrase("Name ", new Font(Font.HELVETICA, 12, 1, Color.BLUE)));
        PdfPCell cellQua = new PdfPCell(new Phrase("Qualifiaction ", new Font(Font.HELVETICA, 12, 1, Color.BLUE)));
        PdfPCell cellOcc = new PdfPCell(new Phrase("Occupation ", new Font(Font.HELVETICA, 12, 1, Color.BLUE)));
        //add headers to report
        tableLayout.AddCell(cellSr);
        tableLayout.AddCell(cellName);
        tableLayout.AddCell(cellQua);
        tableLayout.AddCell(cellOcc);
        tableLayout.DefaultCell.BorderWidth = 1;
        try{
              
            int index=1;
            foreach(GridViewRow row in gridDataToExport.Rows)
            {
                if (index % 2 == 0)
                {
                    tableLayout.DefaultCell.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY;
                }
                else{tableLayout.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE;}
                tableLayout.AddCell(row.Cells[0].Text);
                tableLayout.AddCell(row.Cells[1].Text);
                tableLayout.AddCell(row.Cells[2].Text);
                tableLayout.AddCell(row.Cells[3].Text);
                index++;
            }
            return tableLayout;
        }
        catch (SqlException ex)
        {
            Response.Write(ex.Message);
            return tableLayout;
        }
       
    }http://www.assoc-amazon.com/e/ir?t=csharpingsall-20&l=bil&camp=213689&creative=392969&o=1&a=1590598849http://www.assoc-amazon.com/e/ir?t=csharpingsall-20&l=bil&camp=213689&creative=392969&o=1&a=1590599543
6.0 Future Enhancements
We have just covered a very basic implementation of the pdf using iTextSharp. I’ll try to add advanced features of the iTextSharp application in next post 
7.0 References
  Download iTextSharp.dll version 5.0 from
  http://sourceforge.net/projects/itextsharp/files/itextsharp/iTextSharp-5.0.0/itextsharp-5.0.0-  dll.zip/download
 
No comments:
Post a Comment