Click here to Skip to main content
15,884,237 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
C#
private void generate_pdf(string path, string file, bool download, string text)
   {
       var document = new Document();
       try
       {
           if (download)
               PdfWriter.GetInstance(document, Response.OutputStream);
           else
               PdfWriter.GetInstance(document, new FileStream(path + file, FileMode.Create));

           StringBuilder strB = new StringBuilder();
           document.Open();
           repeat();


           if (text.Length.Equals(0))
           {
               using (StringWriter sw = new StringWriter(strB))
               {
                   using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                   {
                       dt = (DataTable)Session["dataItem"];

                       if (dt.Rows.Count > 0)
                       {
                           DataRow drall;

                           PlaceHolder pholder = new PlaceHolder();
                           pholder.Controls.Add(new LiteralControl("<div ><table><tr><td colspan='6'  align='center' style='font-weight:bold;font-size:18px'>REPORT on " + Text_From.Text + " to " + Text_To.Text + "</td></tr></table></div>"));
                           pholder.Controls.Add(new LiteralControl("<table border='1'><tr style='background:#dadada;font-weight:bold;'><td align='center'>S.No</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Order ID</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Name</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Password</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Imagename</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Updated by</td>"));
                           pholder.Controls.Add(new LiteralControl("<td align='center'>Image</td>"));
                           pholder.Controls.Add(new LiteralControl("</tr>"));

                           for (int i = 0; i < dt.Rows.Count; i++)
                           {
                               int sno = i + 1;
                               drall = dt.Rows[i];
                               pholder.Controls.Add(new LiteralControl("<tr>"));
                               pholder.Controls.Add(new LiteralControl("<td >" + sno + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td>" + drall["id"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["username"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["password"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["imagename"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["updatedby"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("<td align='right'>" + drall["uploadimage"].ToString() + "</td>"));
                               pholder.Controls.Add(new LiteralControl("</tr>"));
                           }

                           pholder.Controls.Add(new LiteralControl("</table>"));
                           pholder.RenderControl(hw);
                       }
                   }
               }
           }

           else

               strB.Append(text);

           using (TextReader sReader = new StringReader(strB.ToString()))
           {

               List<IElement> list = HTMLWorker.ParseToList(sReader, new StyleSheet());   // here i got error
               foreach (IElement elm in list)
               {
                   document.Add(elm);
               }
           }


   }
       catch (Exception ex)
       {

       }
       finally
       {
           document.Close();
       }

   }

protected void btn_pdf_Click(object sender, EventArgs e)
   {

       try
       {

           string file = "reports" + DateTime.Now.Ticks + ".pdf";
           Response.Clear();
           generate_pdf("", file, true, "");
           Response.ContentType = "application/pdf";
           Response.AddHeader("content-disposition", "attachment; filename=" + file);
           Response.Flush();
           Response.End();

       }

       catch(Exception ex)
       {
           throw ex;
       }

   }
Posted
Updated 12-Dec-14 20:40pm
v2
Comments
Prakash J 13-Dec-14 1:56am    
i got error like cannot implicitly convert type arraylist to generic.list itextsharp.text.element

1 solution

try below code
C#
List<IElement> list = HTMLWorker.ParseToList(sReader, new StyleSheet()).Cast<IElement>().ToList();
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900