private void CreatePDFFile() { // CREATE A DOCUMENT OBJECT var document = new Document(PageSize.A4, 10, 10, 10, 0); // CREATE A NEW PDFWRITE OBJECT, WRITING THE OUTPUT TO A MEMORYSTREAM var output = new MemoryStream(); var writer = PdfWriter.GetInstance(document, output); // OPEN THE DOCUMENT FOR WRITING PDFHeaderFooter PageEventHandler = new PDFHeaderFooter(); writer.PageEvent = PageEventHandler; document.Open(); // FIRST, CREATE OUR FONTS... (FOR MORE ON WORKING W/FONTS IN ITEXTSHARP, see: http://www.mikesdotnetting.com/Article/81/iTextSharp-Working-with-Fonts var titleFont = FontFactory.GetFont("Arial", 18, Font.BOLD); titleFont.SetColor(201, 38, 0); var subTitleFont = FontFactory.GetFont("Arial", 12, Font.BOLD); subTitleFont.SetColor(1, 107, 165); var SubbodyFont = FontFactory.GetFont("Arial", 10, Font.NORMAL); var SubbodyFont1 = FontFactory.GetFont("Arial", 10, Font.BOLD); var boldTableFont = FontFactory.GetFont("Arial", 12, Font.BOLD); var endingMessageFont = FontFactory.GetFont("Arial", 10, Font.ITALIC); var bodyFont = FontFactory.GetFont("Arial", 12, Font.NORMAL); var anchorFont = FontFactory.GetFont("Arial", 10, Font.NORMAL); //--------------------------------------------------------------------- strSql = @"SELECT INSTA_MST_SOLUTION.SOLUTION_ID, INSTA_MST_SOLUTION.SOLUTION_NAME, INSTA_MST_SIZE.SIZE_DESCRIPTION, INSTA_MST_EXHIBIT_TYPE_DETAIL.EXHIBIT_DETAILS, INSTA_PAR_MOD_PORT_TYPE.MOD_PORT_DESCRIPTION, INSTA_MST_PRODUCT.PRODUCT_ID, INSTA_MST_PRODUCT.PRODUCT_NAME, INSTA_MST_PRODUCT.PRODUCT_DESCRIPTION, INSTA_MST_CURRENCY.CURRENCY_DESCRIPTION, INSTA_MST_CURRENCY.CURRENCY_SYMBOL, INSTA_MST_DISCOUNT.DISCOUNT_RATE, CAST(INSTA_MST_SOLUTION.PRICE AS VARCHAR(10)) AS PRICE, INSTA_MST_SOLUTION.SHIPPING_DAYS, INSTA_MST_SOLUTION.SHIPPING_DISPLAY_FLAG, INSTA_MST_SOLUTION.SOLUTION_TEXT, INSTA_MST_SOLUTION.PRODUCT_FEATURE_DISPLAY_FLAG FROM INSTA_MST_SOLUTION LEFT JOIN INSTA_MST_SIZE ON INSTA_MST_SOLUTION.SIZE_ID = INSTA_MST_SIZE.SIZE_ID LEFT JOIN INSTA_MST_EXHIBIT_TYPE_DETAIL ON INSTA_MST_SOLUTION.EXHIBIT_DETAIL_ID = INSTA_MST_EXHIBIT_TYPE_DETAIL.EXHIBIT_DETAIL_ID LEFT JOIN INSTA_PAR_MOD_PORT_TYPE ON INSTA_MST_SOLUTION.MOD_PORT_ID = INSTA_PAR_MOD_PORT_TYPE.MOD_PORT_ID LEFT JOIN INSTA_MST_PRODUCT ON INSTA_MST_SOLUTION.PRODUCT_ID = INSTA_MST_PRODUCT.PRODUCT_ID LEFT JOIN INSTA_MST_DISCOUNT ON INSTA_MST_SOLUTION.DISCOUNT_ID = INSTA_MST_DISCOUNT.DISCOUNT_ID LEFT JOIN INSTA_MST_CURRENCY ON INSTA_MST_SOLUTION.CURRENCY_ID = INSTA_MST_CURRENCY.CURRENCY_ID WHERE INSTA_MST_SOLUTION.SOLUTION_ID =" + Convert.ToString(ViewState["SOLUTION_ID"]); //------------------------------------------------------------------------------------------------------------ PdfContentByte cb = writer.DirectContent; var para = new Paragraph(); ColumnText ct = new iTextSharp.text.pdf.ColumnText(cb); float intYaxis = 150f; int intProductId = 0; int intProdFeatureFlag = 0; int intXaxis = 310; //------------------------------------------------------------------------------------------------------------ IDataReader reader = objHelper.gExecuteReader(CommandType.Text, strSql); while (reader.Read()) { intProductId = Convert.ToInt32(string.IsNullOrWhiteSpace(Convert.ToString(reader["PRODUCT_ID"])) ? "0" : Convert.ToString(reader["PRODUCT_ID"])); intProdFeatureFlag = Convert.ToInt32(string.IsNullOrWhiteSpace(Convert.ToString(reader["PRODUCT_FEATURE_DISPLAY_FLAG"])) ? "0" : Convert.ToString(reader["PRODUCT_FEATURE_DISPLAY_FLAG"])); //lblProductNamePdf.Text = lblProductName.Text = Convert.ToString(reader["PRODUCT_NAME"]); //lblHeadSolutionNamePdf.Text = lblHeadSolutionName.Text = ": " + Convert.ToString(reader["SOLUTION_NAME"]); //------------------------------------------------------------------------------------------------------------------------------------------------------- var logo = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Images/edsLogo.JPG")); logo.SetAbsolutePosition(440, document.Top - 100f); logo.ScalePercent(65f, 65f); document.Add(logo); //------------------------------------------------------------------------------------------------------------------------------------------------------- PlaceText(writer.DirectContent, Convert.ToString(reader["PRODUCT_NAME"]) + ":" + Convert.ToString(reader["SOLUTION_NAME"]), titleFont, 316, 750, 40, 790, 14, Element.ALIGN_LEFT); PlaceText(writer.DirectContent, "Size:" + Convert.ToString(reader["SIZE_DESCRIPTION"]) + " (" + Convert.ToString(reader["EXHIBIT_DETAILS"]) + ")", bodyFont, 316, 750, 40, 775, 14, Element.ALIGN_LEFT); //------------------------------------------------------------------------------------------------------------------------------------------------------- var bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb.BeginText(); cb.SetFontAndSize(bf, 9); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "www.expodisplayservice.ae", document.PageSize.GetRight(157), document.PageSize.GetTop(123), 0); cb.EndText(); //------------------------------------------------------------------------------------------------------------------------------------------------------- cb.MoveTo(40, document.Top - 120f); cb.LineTo(550, document.Top - 120f); cb.Stroke(); //---------------------------------------------------- cb.MoveTo(40f, document.Top - 130f); cb.LineTo(550f, document.Top - 130f); cb.LineTo(550f, 100f); cb.LineTo(40f, 100f); cb.ClosePath(); cb.Stroke(); //-------------------------------------------------- logo = iTextSharp.text.Image.GetInstance(Server.MapPath(imgPreviewLarge.ImageUrl)); // logo.ScalePercent(20f, 20f); logo.ScaleAbsolute(240f, 245f); logo.SetAbsolutePosition(55, document.Top - 387f); logo.Border = Rectangle.BOX; // logo.BorderColor = System.Drawing.Color.Black; logo.BorderWidth = 1f; document.Add(logo); //----------------------------------------------------- //PRINT SOLUTION TEXT IF ANY if (!string.IsNullOrWhiteSpace(Convert.ToString(reader["SOLUTION_TEXT"]))) { ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); para.Add(new Chunk(Convert.ToString(reader["SOLUTION_TEXT"]), SubbodyFont)); ct.AddText(para); ct.Go(); intYaxis += 10; } //----------------------------------------------------- if (Convert.ToInt32(Convert.ToString(reader["SHIPPING_DISPLAY_FLAG"])) > 0) { para = new Paragraph(); ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); para.Add(new Chunk("Shipping :", subTitleFont)); ct.AddText(para); ct.Go(); //------------------------- intYaxis += 20; para = new Paragraph(); ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); para.Add(new Chunk("Minimum days required to ship : " + Convert.ToString(reader["SHIPPING_DAYS"]), SubbodyFont)); ct.AddText(para); ct.Go(); intYaxis += 10; } if (Convert.ToDouble(Convert.ToString(reader["PRICE"])) > 0) { para = new Paragraph(); ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); para.Add(new Chunk("Price : ", subTitleFont)); para.Add(new Chunk(Convert.ToString(reader["CURRENCY_SYMBOL"]) + " " + Convert.ToString(reader["PRICE"]), subTitleFont)); ct.AddText(para); ct.Go(); intYaxis += 10; } } reader.Close(); //----------------------------------------------------------------------- intYaxis += 5; para = new Paragraph(); ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 10); string strParaName = ""; strSql = @"SELECT INSTA_MST_PARAGRAPH_HEADER.PARAGRAPH_DESCRIPTION, INSTA_MST_SETUP.SOLUTION_DETAILS_BULLET_FLAG, INSTA_MST_SOLUTION_DETAILS.SOLUTION_DETAILS FROM INSTA_MST_SOLUTION_DETAILS, INSTA_MST_PARAGRAPH_HEADER, INSTA_MST_SETUP WHERE INSTA_MST_SOLUTION_DETAILS.PARAGRAPH_HEADER_ID = INSTA_MST_PARAGRAPH_HEADER.PARAGRAPH_HEADER_ID AND INSTA_MST_SOLUTION_DETAILS.SOLUTION_ID=" + Convert.ToString(ViewState["SOLUTION_ID"]) + @" ORDER BY INSTA_MST_PARAGRAPH_HEADER.SORT_ORDER, INSTA_MST_SOLUTION_DETAILS.SOLUTION_DETAIL_ID"; reader = objHelper.gExecuteReader(CommandType.Text, strSql); while (reader.Read()) { if (strParaName != Convert.ToString(reader["PARAGRAPH_DESCRIPTION"])) { // intYaxis += 5; para = new Paragraph(); // ct.SetSimpleColumn(285, document.Top - intYaxis, 500, 100); para.Add(new Chunk(Convert.ToString(reader["PARAGRAPH_DESCRIPTION"]) + ": ", SubbodyFont1)); ct.AddText(para); ct.Go(); // intYaxis += 10; } //if (Convert.ToInt32(Convert.ToString(reader["SOLUTION_DETAILS_BULLET_FLAG"])) > 0) //{ // strDynamicHTML += "<li style=\"font-family: Arial, Helvetica, sans-serif;font-size: 12px;\" >" + Convert.ToString(reader["SOLUTION_DETAILS"]) + "</li> "; //} //else //{ para = new Paragraph(); // ct.SetSimpleColumn(285, document.Top - intYaxis, 550, 600); para.Add(new Chunk(Convert.ToString(reader["SOLUTION_DETAILS"]), SubbodyFont)); ct.AddText(para); ct.Go(); // intYaxis += 10; //} strParaName = Convert.ToString(reader["PARAGRAPH_DESCRIPTION"]); } reader.Close(); //ADD PRODUCT FEATURES //------------------------------------------------------------------------ if (intProdFeatureFlag > 0) { divProductFeature.Visible = true; //--------------------------------------------------------- //intYaxis = 100; para = new Paragraph(); ct.SetSimpleColumn(55, 440, 500, 100); para.Add(new Chunk(lblProductName.Text + " Features", subTitleFont)); ct.AddText(para); ct.Go(); //--------------------------------------------------------- iTextSharp.text.List listFeature = new iTextSharp.text.List(List.UNORDERED, 10f); listFeature.SetListSymbol("\u2022"); listFeature.IndentationLeft = 1f; //--------------------------------------------------------- strSql = @"SELECT FEATURE_DESCRIPTION, SORT_ORDER, PRODUCT_FEATURE_BULLET_FLAG FROM INSTA_MST_PRODUCT_FEATURE, INSTA_MST_SETUP WHERE PRODUCT_ID = " + intProductId + @" ORDER BY SORT_ORDER "; reader = objHelper.gExecuteReader(CommandType.Text, strSql); while (reader.Read()) { if (Convert.ToInt32(Convert.ToString(reader["PRODUCT_FEATURE_BULLET_FLAG"])) > 0) { listFeature.Add(new iTextSharp.text.ListItem(Convert.ToString(reader["FEATURE_DESCRIPTION"]), SubbodyFont)); } else { listFeature.Add(new iTextSharp.text.ListItem(Convert.ToString(reader["FEATURE_DESCRIPTION"]), SubbodyFont)); } } reader.Close(); //------------------------------------ para = new Paragraph(); ct.SetSimpleColumn(55, 420, 260, 100); para.Add(listFeature); ct.AddElement(para); ct.Go(); int i = listFeature.Size; } //------------------------------------------------------------------------- document.Close(); Response.ContentType = "application/pdf"; Response.AddHeader("Content-Disposition", string.Format("attachment;filename=Receipt-{0}.pdf", lblProductName.Text + lblHeadSolutionName.Text)); Response.BinaryWrite(output.ToArray()); Response.End(); }
public static void CreatePDF(string strSolID) { string strSql = ""; string strProductName = ""; string strSolName = ""; string strImageURL = ""; DBHelper objHelper = new DBHelper(); using (MemoryStream output = new MemoryStream()) { using (Document document = new Document(PageSize.A4, 10, 10, 10, 0)) { using (PdfWriter writer = PdfWriter.GetInstance(document, output)) { // CREATE A DOCUMENT OBJECT // var document = new Document(PageSize.A4, 10, 10, 10, 0); // CREATE A NEW PDFWRITE OBJECT, WRITING THE OUTPUT TO A MEMORYSTREAM // var output = new MemoryStream(); // var writer = PdfWriter.GetInstance(document, output); // OPEN THE DOCUMENT FOR WRITING //THIS CLASS IS FOR FOOTER PDFHeaderFooter PageEventHandler = new PDFHeaderFooter(); writer.PageEvent = PageEventHandler; document.Open(); // FIRST, CREATE OUR FONTS... (FOR MORE ON WORKING W/FONTS IN ITEXTSHARP, see: http://www.mikesdotnetting.com/Article/81/iTextSharp-Working-with-Fonts var titleFont = FontFactory.GetFont("Arial", 18, Font.BOLD); titleFont.SetColor(202, 5, 17); var subTitleFont = FontFactory.GetFont("Arial", 12, Font.BOLD); //subTitleFont.SetColor(161, 38, 101); subTitleFont.SetColor(202, 5, 17); var SubbodyFont = FontFactory.GetFont("Arial", 10, Font.NORMAL); var SubbodyFont1 = FontFactory.GetFont("Arial", 10, Font.BOLD); var boldTableFont = FontFactory.GetFont("Arial", 12, Font.BOLD); var endingMessageFont = FontFactory.GetFont("Arial", 10, Font.ITALIC); var bodyFont = FontFactory.GetFont("Arial", 12, Font.NORMAL); var anchorFont = FontFactory.GetFont("Arial", 10, Font.NORMAL); //--------------------------------------------------------------------- strSql = @"SELECT INSTA_MST_SOLUTION.SOLUTION_ID, INSTA_MST_SOLUTION.SOLUTION_NAME, INSTA_MST_SIZE.SIZE_DESCRIPTION, INSTA_MST_EXHIBIT_TYPE_DETAIL.EXHIBIT_DETAILS, INSTA_PAR_MOD_PORT_TYPE.MOD_PORT_DESCRIPTION, INSTA_MST_PRODUCT.PRODUCT_ID, INSTA_MST_PRODUCT.PRODUCT_NAME, INSTA_MST_PRODUCT.PRODUCT_DESCRIPTION, INSTA_MST_CURRENCY.CURRENCY_DESCRIPTION, INSTA_MST_CURRENCY.CURRENCY_SYMBOL, INSTA_MST_DISCOUNT.DISCOUNT_RATE, CAST(INSTA_MST_SOLUTION.PRICE AS VARCHAR(10)) AS PRICE, INSTA_MST_SOLUTION.SHIPPING_DAYS, INSTA_MST_SOLUTION.SHIPPING_DISPLAY_FLAG, INSTA_MST_SOLUTION.SOLUTION_TEXT, INSTA_MST_SOLUTION.PRODUCT_FEATURE_DISPLAY_FLAG, (SELECT TOP 1 '~/upload/Images/' + PICTURE_NAME FROM INSTA_MST_PICTURE_LINK WHERE SOLUTION_ID =INSTA_MST_SOLUTION.SOLUTION_ID AND INACTIVE_FLAG = 0 ORDER BY SORT_ORDER ) AS PICS_URL FROM INSTA_MST_SOLUTION LEFT JOIN INSTA_MST_SIZE ON INSTA_MST_SOLUTION.SIZE_ID = INSTA_MST_SIZE.SIZE_ID LEFT JOIN INSTA_MST_EXHIBIT_TYPE_DETAIL ON INSTA_MST_SOLUTION.EXHIBIT_DETAIL_ID = INSTA_MST_EXHIBIT_TYPE_DETAIL.EXHIBIT_DETAIL_ID LEFT JOIN INSTA_PAR_MOD_PORT_TYPE ON INSTA_MST_SOLUTION.MOD_PORT_ID = INSTA_PAR_MOD_PORT_TYPE.MOD_PORT_ID LEFT JOIN INSTA_MST_PRODUCT ON INSTA_MST_SOLUTION.PRODUCT_ID = INSTA_MST_PRODUCT.PRODUCT_ID LEFT JOIN INSTA_MST_DISCOUNT ON INSTA_MST_SOLUTION.DISCOUNT_ID = INSTA_MST_DISCOUNT.DISCOUNT_ID LEFT JOIN INSTA_MST_CURRENCY ON INSTA_MST_SOLUTION.CURRENCY_ID = INSTA_MST_CURRENCY.CURRENCY_ID WHERE INSTA_MST_SOLUTION.SOLUTION_ID =" + strSolID; //------------------------------------------------------------------------------------------------------------ PdfContentByte cb = writer.DirectContent; var para = new Paragraph(); ColumnText ct = new iTextSharp.text.pdf.ColumnText(cb); float intYaxis = 150f; int intProductId = 0; int intProdFeatureFlag = 0; int intXaxis = 310; int intShippingDisflg = 0; int intShippingDays = 0; string strCurrSymbol = ""; string strPrice = ""; //------------------------------------------------------------------------------------------------------------ IDataReader reader = objHelper.gExecuteReader(CommandType.Text, strSql); while (reader.Read()) { strProductName = Convert.ToString(reader["PRODUCT_NAME"]); strSolName = Convert.ToString(reader["SOLUTION_NAME"]); strImageURL = Convert.ToString(reader["PICS_URL"]); intProductId = Convert.ToInt32(string.IsNullOrWhiteSpace(Convert.ToString(reader["PRODUCT_ID"])) ? "0" : Convert.ToString(reader["PRODUCT_ID"])); intProdFeatureFlag = Convert.ToInt32(string.IsNullOrWhiteSpace(Convert.ToString(reader["PRODUCT_FEATURE_DISPLAY_FLAG"])) ? "0" : Convert.ToString(reader["PRODUCT_FEATURE_DISPLAY_FLAG"])); //lblProductNamePdf.Text = lblProductName.Text = Convert.ToString(reader["PRODUCT_NAME"]); //lblHeadSolutionNamePdf.Text = lblHeadSolutionName.Text = ": " + Convert.ToString(reader["SOLUTION_NAME"]); //------------------------------------------------------------------------------------------------------------------------------------------------------- //DISPLAY LOGO var logo = iTextSharp.text.Image.GetInstance(HttpContext.Current.Server.MapPath("~/images/Insta-logo.png")); logo.SetAbsolutePosition(445, document.Top - 100f); logo.ScalePercent(65f, 65f); document.Add(logo); //------------------------------------------------------------------------------------------------------------------------------------------------------- PlaceText(writer.DirectContent, Convert.ToString(reader["PRODUCT_NAME"]) + ": " + Convert.ToString(reader["SOLUTION_NAME"]), titleFont, 40, 790, 580, 317, 15, Element.ALIGN_LEFT); PlaceText(writer.DirectContent, "Size: " + Convert.ToString(reader["SIZE_DESCRIPTION"]) + " (" + Convert.ToString(reader["EXHIBIT_DETAILS"]).Replace("<sup>","").Replace("</sup>","") + ")", bodyFont, 40, 775, 580, 317, 15, Element.ALIGN_LEFT); //PlaceText(writer.DirectContent, Convert.ToString(reader["PRODUCT_NAME"]) + ":" + Convert.ToString(reader["SOLUTION_NAME"]), titleFont, 316, 750, 40, 790, 14, Element.ALIGN_LEFT); //PlaceText(writer.DirectContent, "Size:" + Convert.ToString(reader["SIZE_DESCRIPTION"]) + " (" + Convert.ToString(reader["EXHIBIT_DETAILS"]) + ")", bodyFont, 316, 750, 40, 775, 14, Element.ALIGN_LEFT); //------------------------------------------------------------------------------------------------------------------------------------------------------- var bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb.BeginText(); cb.SetFontAndSize(FontFactory.GetFont(FontFactory.HELVETICA_BOLD).BaseFont, 8); cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "www.insta-group.com", document.PageSize.GetRight(152), document.PageSize.GetTop(123), 0); cb.EndText(); //------------------------------------------------------------------------------------------------------------------------------------------------------- //FOR HORIZONTAL LINE BELOW PRODUCT & LOGO IMAGE cb.MoveTo(40, document.Top - 120f); cb.LineTo(550, document.Top - 120f); cb.Stroke(); ////---------------------------------------------------- //FOR RECTANGLE BORDER OVER CONTENT //cb.MoveTo(40f, document.Top - 130f); //cb.LineTo(550f, document.Top - 130f); //cb.LineTo(550f, 100f); //cb.LineTo(40f, 100f); //cb.ClosePath(); //cb.Stroke(); //-------------------------------------------------- logo = iTextSharp.text.Image.GetInstance(HttpContext.Current.Server.MapPath(strImageURL)); // logo.ScalePercent(20f, 20f); logo.ScaleAbsolute(240f, 245f); logo.SetAbsolutePosition(40, document.Top - 387f); logo.Border = Rectangle.BOX; // logo.BorderColor = System.Drawing.Color.Black; logo.BorderWidth = 1f; document.Add(logo); //----------------------------------------------------- //PRINT SOLUTION TEXT IF ANY if (!string.IsNullOrWhiteSpace(Convert.ToString(reader["SOLUTION_TEXT"]))) { ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); para.Add(new Chunk(Convert.ToString(reader["SOLUTION_TEXT"]), SubbodyFont)); ct.AddText(para); ct.Go(); intYaxis += 10; } //----------------------------------------------------- intShippingDisflg = Convert.ToInt32(Convert.ToString(reader["SHIPPING_DISPLAY_FLAG"])); intShippingDays = Convert.ToInt32(Convert.ToString(reader["SHIPPING_DAYS"])); strCurrSymbol = Convert.ToString(reader["CURRENCY_SYMBOL"]); strPrice = Convert.ToString(reader["PRICE"]); //if (Convert.ToInt32(Convert.ToString(reader["SHIPPING_DISPLAY_FLAG"])) > 0) //{ // para = new Paragraph(); // ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); // para.Add(new Chunk("Shipping :", subTitleFont)); // ct.AddText(para); // ct.Go(); // //------------------------- // intYaxis += 20; // para = new Paragraph(); // ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); // para.Add(new Chunk("Minimum days required to ship : " + Convert.ToString(reader["SHIPPING_DAYS"]), SubbodyFont)); // ct.AddText(para); // ct.Go(); // intYaxis += 10; //} //if (Convert.ToDouble(Convert.ToString(reader["PRICE"])) > 0) //{ // para = new Paragraph(); // ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); // para.Add(new Chunk("Price : ", subTitleFont)); // para.Add(new Chunk(Convert.ToString(reader["CURRENCY_SYMBOL"]) + " " + Convert.ToString(reader["PRICE"]), subTitleFont)); // ct.AddText(para); // ct.Go(); // intYaxis += 10; //} } reader.Close(); //----------------------------------------------------------------------- //intYaxis += 15; string strParaName = ""; strSql = @"SELECT INSTA_MST_PARAGRAPH_HEADER.PARAGRAPH_DESCRIPTION, INSTA_MST_SETUP.SOLUTION_DETAILS_BULLET_FLAG, INSTA_MST_SOLUTION_DETAILS.SOLUTION_DETAILS FROM INSTA_MST_SOLUTION_DETAILS, INSTA_MST_PARAGRAPH_HEADER, INSTA_MST_SETUP WHERE INSTA_MST_SOLUTION_DETAILS.PARAGRAPH_HEADER_ID = INSTA_MST_PARAGRAPH_HEADER.PARAGRAPH_HEADER_ID AND INSTA_MST_SOLUTION_DETAILS.SOLUTION_ID=" + strSolID + @" ORDER BY INSTA_MST_PARAGRAPH_HEADER.SORT_ORDER, INSTA_MST_SOLUTION_DETAILS.SOLUTION_DETAIL_ID"; bool bnlSpecifican = false; reader = objHelper.gExecuteReader(CommandType.Text, strSql); while (reader.Read()) { if (!bnlSpecifican) { para = new Paragraph(); ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); para.Add(new Chunk("Specification : ", subTitleFont)); ct.AddText(para); ct.Go(); intYaxis += 20; bnlSpecifican = true; } if (strParaName != Convert.ToString(reader["PARAGRAPH_DESCRIPTION"])) { para = new Paragraph(); para.Add(new Chunk(Convert.ToString(reader["PARAGRAPH_DESCRIPTION"]) + ": ", SubbodyFont1)); para.Leading = 0; para.MultipliedLeading = 2f; ct.AddElement(new Phrase(para)); //ct.AddElement(Chunk.NEWLINE); // ct.AddElement(para); ct.Go(); } para = new Paragraph(); para.Add(new Chunk(Convert.ToString(reader["SOLUTION_DETAILS"]), SubbodyFont)); // para.SpacingAfter = 0; para.Leading = 0; para.MultipliedLeading = 1f; // ct.AddElement(new Phrase(para)); ct.AddElement(new Phrase(para)); //ct.AddText(Chunk.NEWLINE); //ct.AddText(para); ct.Go(); strParaName = Convert.ToString(reader["PARAGRAPH_DESCRIPTION"]); } reader.Close(); //----------------------------------------------------------------------------- //-- ADDING SHIPPING DETAILS //----------------------------------------------------------------------------- intYaxis = ct.YLine -30 ; if (intShippingDisflg > 0 && intShippingDays > 0) { para = new Paragraph(); ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); //ct.SetSimpleColumn(intXaxis, ct.YLine+50, 550, 100); para.Add(new Chunk("Shipping :", subTitleFont)); ct.AddElement(para); ct.Go(); //------------------------- intYaxis += 10; para = new Paragraph(); ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); para.Add(new Chunk("Minimum days required to ship : " + intShippingDays, SubbodyFont)); ct.AddElement(para); ct.Go(); } if (Convert.ToDouble(strPrice) > 0) { intYaxis += 15; para = new Paragraph(); ct.SetSimpleColumn(intXaxis, document.Top - intYaxis, 550, 100); para.Add(new Chunk("Price : ", SubbodyFont)); para.Add(new Chunk(strCurrSymbol + " " + strPrice, SubbodyFont)); ct.AddElement(para); ct.Go(); } //ADD PRODUCT FEATURES //------------------------------------------------------------------------ if (intProdFeatureFlag > 0) { //--------------------------------------------------------- //intYaxis = 100; para = new Paragraph(); ct.SetSimpleColumn(40, 440, 500, 100); para.Add(new Chunk(strProductName + " Features", subTitleFont)); ct.AddElement(para); ct.Go(); //--------------------------------------------------------- iTextSharp.text.List listFeature = new iTextSharp.text.List(List.UNORDERED, 10f); listFeature.SetListSymbol("\u2022"); listFeature.IndentationLeft = 1f; //--------------------------------------------------------- strSql = @"SELECT FEATURE_DESCRIPTION, SORT_ORDER, PRODUCT_FEATURE_BULLET_FLAG FROM INSTA_MST_PRODUCT_FEATURE, INSTA_MST_SETUP WHERE PRODUCT_ID = " + intProductId + @" ORDER BY SORT_ORDER "; reader = objHelper.gExecuteReader(CommandType.Text, strSql); while (reader.Read()) { if (Convert.ToInt32(Convert.ToString(reader["PRODUCT_FEATURE_BULLET_FLAG"])) > 0) { listFeature.Add(new iTextSharp.text.ListItem(Convert.ToString(reader["FEATURE_DESCRIPTION"]), SubbodyFont)); } else { listFeature.Add(new iTextSharp.text.ListItem(Convert.ToString(reader["FEATURE_DESCRIPTION"]), SubbodyFont)); } } reader.Close(); //------------------------------------ para = new Paragraph(); ct.SetSimpleColumn(40, 420, 260, 100); para.Add(listFeature); ct.AddElement(para); ct.Go(); int i = listFeature.Size; } //------------------------------------------------------------------------- document.Close(); HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}.pdf", strProductName + strSolName)); HttpContext.Current.Response.BinaryWrite(output.ToArray()); HttpContext.Current.Response.End(); } } } }