public void PDF_REPORT_DATA(string SAP_ID, string CANDIDATEID)
string strSapIdCandidateId = SAP_ID + "_" + CANDIDATEID;
pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDoc, HttpContext.Current.Response.OutputStream);
ITextEvents ObjITextEvents = new ITextEvents();
ObjITextEvents.SapID = SAP_ID;
ObjITextEvents.CandidateID = CANDIDATEID;
ObjITextEvents.ImagePath = HttpContext.Current.Server.MapPath("Images");
pdfWriter.PageEvent = ObjITextEvents;
string outXml = string.Empty;
DataSet dsVal = new DataSet();
CommonDB CDB = new CommonDB();
dsVal = CommonDB.GET_TBL_VSAT_MST_DETAIL(SAP_ID, CANDIDATEID);
if (dsVal != null && dsVal.Tables[0].Rows.Count > 0)
using (StreamReader reader = new StreamReader(HttpContext.Current.Server.MapPath("PDFTEST.html")))
outXml = reader.ReadToEnd();
outXml = outXml.Replace("{SAP_ID}", SAP_ID);
outXml = outXml.Replace("{CANDIDATE_ID}", CANDIDATEID);
outXml = outXml.Replace("{CIRCLE}", dsVal.Tables[0].Rows[0]["CIRCLE"].ToString());
outXml = outXml.Replace("{SITE_ID}", dsVal.Tables[0].Rows[0]["SITE_ID"].ToString());
outXml = outXml.Replace("{PRIORITY_ID}", dsVal.Tables[0].Rows[0]["PRIORITY"].ToString());
outXml = outXml.Replace("{SITE_NAME}", dsVal.Tables[0].Rows[0]["SITE_NAME"].ToString());
outXml = outXml.Replace("{CONTACT_DETAILS}", dsVal.Tables[0].Rows[0]["CONTACT_DETAILS"].ToString());
outXml = outXml.Replace("{SITE_TYPE}", dsVal.Tables[0].Rows[0]["SITE_TYPE"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_DIMENSION}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_DIMENSION"].ToString());
outXml = outXml.Replace("{LATITUDE}", dsVal.Tables[0].Rows[0]["LATITUDE"].ToString());
outXml = outXml.Replace("{LONGITUDE}", dsVal.Tables[0].Rows[0]["LONGITUDE"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_TECHNOLOGY}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_TECHNOLOGY"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_MOUNT_TYPE}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_MOUNT_TYPE"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_ANTENNA_SIZE}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_ANTENNA_SIZE"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_AMSL}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_AMSL"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_PLATFORM_REQUIRED}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_PLATFORM_REQUIRED"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_PLATFORM_HEIGHT}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_PLATFORM_HEIGHT"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_ROOFTOP_SITE}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_ROOFTOP_SITE"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_NOOFLOORS}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_NOOFLOORS"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_ADD_ROOFTOP_SITE}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_ADD_ROOFTOP_SITE"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_STRUCTURAL_STAB}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_STRUCTURAL_STAB"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_HEIGHT_OF_ANTENNA}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_HEIGHT_OF_ANTENNA"].ToString());
outXml = outXml.Replace("{SITE_DETAILS_SATELLITE_BAND}", dsVal.Tables[0].Rows[0]["SITE_DETAILS_SATELLITE_BAND"].ToString());
outXml = outXml.Replace("{AZIMUTH_GSAT_16}", dsVal.Tables[0].Rows[0]["AZIMUTH_GSAT_16"].ToString());
outXml = outXml.Replace("{AZIMUTH_GSAT_18}", dsVal.Tables[0].Rows[0]["AZIMUTH_GSAT_18"].ToString());
outXml = outXml.Replace("{AZIMUTH_GSAT_12}", dsVal.Tables[0].Rows[0]["AZIMUTH_GSAT_12"].ToString());
outXml = outXml.Replace("{AZIMUTH_GSAT_17}", dsVal.Tables[0].Rows[0]["AZIMUTH_GSAT_17"].ToString());
outXml = outXml.Replace("{ELEVATION_GSAT_16}", dsVal.Tables[0].Rows[0]["ELEVATION_GSAT_16"].ToString());
outXml = outXml.Replace("{ELEVATION_GSAT_18}", dsVal.Tables[0].Rows[0]["ELEVATION_GSAT_18"].ToString());
outXml = outXml.Replace("{ELEVATION_GSAT_12}", dsVal.Tables[0].Rows[0]["ELEVATION_GSAT_12"].ToString());
outXml = outXml.Replace("{ELEVATION_GSAT_17}", dsVal.Tables[0].Rows[0]["ELEVATION_GSAT_17"].ToString());
outXml = outXml.Replace("{ANTENNA_DISTANCE_NEAR_AIRPORT}", dsVal.Tables[0].Rows[0]["ANTENNA_DISTANCE_NEAR_AIRPORT"].ToString());
outXml = outXml.Replace("{ANTENNA_AIRPORT_NAME}", dsVal.Tables[0].Rows[0]["ANTENNA_AIRPORT_NAME"].ToString());
outXml = outXml.Replace("{GSAT_LOS_16_55E}", dsVal.Tables[0].Rows[0]["GSAT_LOS_16_55E"].ToString());
outXml = outXml.Replace("{GSAT_LOS_18_74E}", dsVal.Tables[0].Rows[0]["GSAT_LOS_18_74E"].ToString());
outXml = outXml.Replace("{GSAT_LOS_12_83E}", dsVal.Tables[0].Rows[0]["GSAT_LOS_12_83E"].ToString());
outXml = outXml.Replace("{GSAT_LOS_17_935E}", dsVal.Tables[0].Rows[0]["GSAT_LOS_17_935E"].ToString());
outXml = outXml.Replace("{GSAT_OBSTA_16_55E}", dsVal.Tables[0].Rows[0]["GSAT_OBSTA_16_55E"].ToString());
outXml = outXml.Replace("{GSAT_OBSTA_18_74E}", dsVal.Tables[0].Rows[0]["GSAT_OBSTA_18_74E"].ToString());
outXml = outXml.Replace("{GSAT_OBSTA_12_83E}", dsVal.Tables[0].Rows[0]["GSAT_OBSTA_12_83E"].ToString());
outXml = outXml.Replace("{GSAT_OBSTA_17_935E}", dsVal.Tables[0].Rows[0]["GSAT_OBSTA_17_935E"].ToString());
outXml = outXml.Replace("{OBST_AZIMU_16_55E}", dsVal.Tables[0].Rows[0]["OBST_AZIMU_16_55E"].ToString());
outXml = outXml.Replace("{OBST_AZIMU_18_74E}", dsVal.Tables[0].Rows[0]["OBST_AZIMU_18_74E"].ToString());
outXml = outXml.Replace("{OBST_AZIMU_12_83E}", dsVal.Tables[0].Rows[0]["OBST_AZIMU_12_83E"].ToString());
outXml = outXml.Replace("{OBST_AZIMU_17_935E}", dsVal.Tables[0].Rows[0]["OBST_AZIMU_17_935E"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE}", dsVal.Tables[0].Rows[0]["OBSTACLE_TYPE"].ToString());
outXml = outXml.Replace("{HEIGHT_OF_OBSTACLE}", dsVal.Tables[0].Rows[0]["HEIGHT_OF_OBSTACLE"].ToString());
outXml = outXml.Replace("{DISTANCE_OF_OBSTA_ANTENNA}", dsVal.Tables[0].Rows[0]["DISTANCE_OF_OBSTA_ANTENNA"].ToString());
outXml = outXml.Replace("{CABLE_LENGTH_IFL}", dsVal.Tables[0].Rows[0]["CABLE_LENGTH_IFL"].ToString());
outXml = outXml.Replace("{CABLE_LENGTH_DC}", dsVal.Tables[0].Rows[0]["CABLE_LENGTH_DC"].ToString());
outXml = outXml.Replace("{CABLE_LENGTH_ETHERNET}", dsVal.Tables[0].Rows[0]["CABLE_LENGTH_ETHERNET"].ToString());
outXml = outXml.Replace("{ANY_CABLE_DIGGING_LAN_DC}", dsVal.Tables[0].Rows[0]["ANY_CABLE_DIGGING_LAN_DC"].ToString());
outXml = outXml.Replace("{CABLE_DETAIL_SITE_LAYOUT}", dsVal.Tables[0].Rows[0]["CABLE_DETAIL_SITE_LAYOUT"].ToString());
outXml = outXml.Replace("{CABLE_LENGTH_EARTH_ANTENNA}", dsVal.Tables[0].Rows[0]["CABLE_LENGTH_EARTH_ANTENNA"].ToString());
outXml = outXml.Replace("{CABLE_LENGTH_EARTH_ODU}", dsVal.Tables[0].Rows[0]["CABLE_LENGTH_EARTH_ODU"].ToString());
outXml = outXml.Replace("{NEAR_ELECTRICAL_BOARD_TAPPING}", dsVal.Tables[0].Rows[0]["NEAR_ELECTRICAL_BOARD_TAPPING"].ToString());
outXml = outXml.Replace("{AC_POWER_NEAR_ANTENNA}", dsVal.Tables[0].Rows[0]["AC_POWER_NEAR_ANTENNA"].ToString());
outXml = outXml.Replace("{MONKEY_CAGE_REQUIRED}", dsVal.Tables[0].Rows[0]["MONKEY_CAGE_REQUIRED"].ToString());
outXml = outXml.Replace("{ACCESS_TO_SITE_ROAD}", dsVal.Tables[0].Rows[0]["ACCESS_TO_SITE_ROAD"].ToString());
outXml = outXml.Replace("{TRAVEL_DISTANCE_CITY}", dsVal.Tables[0].Rows[0]["TRAVEL_DISTANCE_CITY"].ToString());
outXml = outXml.Replace("{TRAVEL_DISTANCE_TOWN}", dsVal.Tables[0].Rows[0]["TRAVEL_DISTANCE_TOWN"].ToString());
outXml = outXml.Replace("{TRAVEL_DISTANCE_VILLAGE}", dsVal.Tables[0].Rows[0]["TRAVEL_DISTANCE_VILLAGE"].ToString());
outXml = outXml.Replace("{TRAVEL_DISTANCE_PANCHAYAT}", dsVal.Tables[0].Rows[0]["TRAVEL_DISTANCE_PANCHAYAT"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE_16}", dsVal.Tables[0].Rows[0]["OBST_GSAT_16"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE_16_OTHERS}", dsVal.Tables[0].Rows[0]["OBST_GSAT_16_OTHERS"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE_18}", dsVal.Tables[0].Rows[0]["OBST_GSAT_18"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE_18_OTHERS}", dsVal.Tables[0].Rows[0]["OBST_GSAT_18_OTHERS"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE_12}", dsVal.Tables[0].Rows[0]["OBST_GSAT_12"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE_12_OTHERS}", dsVal.Tables[0].Rows[0]["OBST_GSAT_12_OTHERS"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE_17}", dsVal.Tables[0].Rows[0]["OBST_GSAT_17"].ToString());
outXml = outXml.Replace("{OBSTACLE_TYPE_17_OTHERS}", dsVal.Tables[0].Rows[0]["OBST_GSAT_17_OTHERS"].ToString());
outXml = outXml.Replace("{HEIGHT_OF_OBSTACLE_16}", dsVal.Tables[0].Rows[0]["HGT_GSAT_16"].ToString());
outXml = outXml.Replace("{HEIGHT_OF_OBSTACLE_18}", dsVal.Tables[0].Rows[0]["HGT_GSAT_18"].ToString());
outXml = outXml.Replace("{HEIGHT_OF_OBSTACLE_12}", dsVal.Tables[0].Rows[0]["HGT_GSAT_12"].ToString());
outXml = outXml.Replace("{HEIGHT_OF_OBSTACLE_17}", dsVal.Tables[0].Rows[0]["HGT_GSAT_17"].ToString());
outXml = outXml.Replace("{DIST_GSAT_16}", dsVal.Tables[0].Rows[0]["DIST_GSAT_16"].ToString());
outXml = outXml.Replace("{DIST_GSAT_18}", dsVal.Tables[0].Rows[0]["DIST_GSAT_18"].ToString());
outXml = outXml.Replace("{DIST_GSAT_12}", dsVal.Tables[0].Rows[0]["DIST_GSAT_12"].ToString());
outXml = outXml.Replace("{DIST_GSAT_17}", dsVal.Tables[0].Rows[0]["DIST_GSAT_17"].ToString());
outXml = outXml.Replace("{MODE_TRANSPORT}", dsVal.Tables[0].Rows[0]["MODE_OF_TRANSPORT"].ToString());
outXml = outXml.Replace("{TRANSPORT_SITE_CITY}", dsVal.Tables[0].Rows[0]["TRANSPORT_SITE_CITY"].ToString());
outXml = outXml.Replace("{TRANSPORT_SITE_TOWN}", dsVal.Tables[0].Rows[0]["TRANSPORT_SITE_TOWN"].ToString());
outXml = outXml.Replace("{TRANSPORT_SITE_VILLAGE}", dsVal.Tables[0].Rows[0]["TRANSPORT_SITE_VILLAGE"].ToString());
outXml = outXml.Replace("{TRANSPORT_SITE_PANCHAYAT}", dsVal.Tables[0].Rows[0]["TRANSPORT_SITE_PANCHAYAT"].ToString());
outXml = outXml.Replace("{HIGH_FLOOD_LEVEL}", dsVal.Tables[0].Rows[0]["HIGH_FLOOD_LEVEL"].ToString());
outXml = outXml.Replace("{HUGHES_REMARKS}", dsVal.Tables[0].Rows[0]["HUGHES_REMARKS"].ToString());
outXml = outXml.Replace("{RJIL_REMARKS}", dsVal.Tables[0].Rows[0]["RJIL_REMARKS"].ToString());
outXml = outXml.Replace("{SITE_APPRV}", dsVal.Tables[0].Rows[0]["SITE_APPROVED"].ToString());
outXml = outXml.Replace("{COMP_1}", dsVal.Tables[0].Rows[0]["COMPANY_1"].ToString());
outXml = outXml.Replace("{NAME_1}", dsVal.Tables[0].Rows[0]["NAME_1"].ToString());
outXml = outXml.Replace("{DESIGN_1}", dsVal.Tables[0].Rows[0]["DESIGNATION_1"].ToString());
outXml = outXml.Replace("{DATE_1}", dsVal.Tables[0].Rows[0]["DATE_1"].ToString());
outXml = outXml.Replace("{COMP_2}", dsVal.Tables[0].Rows[0]["COMPANY_2"].ToString());
outXml = outXml.Replace("{NAME_2}", dsVal.Tables[0].Rows[0]["NAME_2"].ToString());
outXml = outXml.Replace("{DESIGN_2}", dsVal.Tables[0].Rows[0]["DESIGNATION_2"].ToString());
outXml = outXml.Replace("{DATE_2}", dsVal.Tables[0].Rows[0]["DATE_2"].ToString());
outXml = outXml.Replace("{COMP_3}", dsVal.Tables[0].Rows[0]["COMPANY_3"].ToString());
outXml = outXml.Replace("{NAME_3}", dsVal.Tables[0].Rows[0]["NAME_3"].ToString());
outXml = outXml.Replace("{DESIGN_3}", dsVal.Tables[0].Rows[0]["DESIGNATION_3"].ToString());
outXml = outXml.Replace("{DATE_3}", dsVal.Tables[0].Rows[0]["DATE_3"].ToString());
outXml = outXml.Replace("{COMP_4}", dsVal.Tables[0].Rows[0]["COMPANY_4"].ToString());
outXml = outXml.Replace("{NAME_4}", dsVal.Tables[0].Rows[0]["NAME_4"].ToString());
outXml = outXml.Replace("{DESIGN_4}", dsVal.Tables[0].Rows[0]["DESIGNATION_4"].ToString());
outXml = outXml.Replace("{DATE_4}", dsVal.Tables[0].Rows[0]["DATE_4"].ToString());
if (dsVal.Tables[1] != null && dsVal.Tables[1].Rows.Count > 0)
for (int i = 0; i < dsVal.Tables[1].Rows.Count; i++)
if (dsVal.Tables[1].Rows[i]["IMG_TYPE"].ToString() == "Panaromic")
if (!string.IsNullOrEmpty(Convert.ToString(dsVal.Tables[1].Rows[i]["IMG_NAME"])))
string strImg = dsVal.Tables[1].Rows[i]["IMG_NAME"].ToString().Split('.')[0];
outXml = outXml.Replace("{PANAROMIC_" + strImg + "}", strImageURL + strSapIdCandidateId + "/" + dsVal.Tables[1].Rows[i]["IMG_TYPE"].ToString() + "/" + dsVal.Tables[1].Rows[i]["IMG_NAME"].ToString() + "");
if (dsVal.Tables[1].Rows[i]["IMG_TYPE"].ToString() == "Satellite")
if (!string.IsNullOrEmpty(Convert.ToString(dsVal.Tables[1].Rows[i]["IMG_NAME"])))
string strImg = dsVal.Tables[1].Rows[i]["IMG_NAME"].ToString().Split('.')[0];
outXml = outXml.Replace("{SATELLITE_" + strImg + "}", strImageURL + strSapIdCandidateId + "/" + dsVal.Tables[1].Rows[i]["IMG_TYPE"].ToString() + "/" + dsVal.Tables[1].Rows[i]["IMG_NAME"].ToString() + "");
if (dsVal.Tables[1].Rows[i]["IMG_TYPE"].ToString() == "SitePlot")
if (!string.IsNullOrEmpty(Convert.ToString(dsVal.Tables[1].Rows[i]["IMG_NAME"])))
outXml = outXml.Replace("{SitePlot_Manual}", strImageURL + strSapIdCandidateId + "/" + dsVal.Tables[1].Rows[i]["IMG_TYPE"].ToString() + "/" + dsVal.Tables[1].Rows[i]["IMG_NAME"].ToString() + "");
outXml = outXml.Replace("{PANAROMIC_120}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{PANAROMIC_150}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{PANAROMIC_180}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{PANAROMIC_210}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{PANAROMIC_240}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{SATELLITE_55}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{SATELLITE_74}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{SATELLITE_83}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{SATELLITE_935}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{SitePlot_Manual}", HttpContext.Current.Server.MapPath("Images") + "/default.jpg");
outXml = outXml.Replace("{SitePlot_Reference}", HttpContext.Current.Server.MapPath("Images") + "/layout-img.png");
string[] separator = new string[] { @"<br clear='all' style='page-break-before:always'>" };
string[] pages = outXml.Split(separator, StringSplitOptions.None);
foreach (string page in pages)
List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(page), null);
pdfDoc.SetMargins(20, 20, 80, 50);
for (int k = 0; k < htmlarraylist.Count; k++)
pdfDoc.Add((IElement)htmlarraylist[k]);
string strFilePath = HttpContext.Current.Server.MapPath("~/UploadedFiles/" + SAP_ID + '_' + CANDIDATEID + "\\" + SAP_ID + '_' + CANDIDATEID + ".pdf");
string strDirectory = HttpContext.Current.Server.MapPath("~/UploadedFiles/" + SAP_ID + '_' + CANDIDATEID);
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
if (!Directory.Exists(strDirectory))
if (File.Exists(strDirectory + ".zip"))
var filestream = new System.IO.FileStream(strFilePath + ".zip", System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
File.Delete(strFilePath + ".zip");
var stream = new FileStream(strDirectory + ".zip", FileMode.Create);
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename= "+ strDirectory + "");
HttpContext.Current.Response.TransmitFile(strDirectory + ".zip");
HttpContext.Current.Response.Flush();
ZipFile.CreateFromDirectory(strDirectory, strDirectory + ".zip");
var streama = new FileStream(strDirectory + ".zip", FileMode.Create);
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename= " + strDirectory + "");
HttpContext.Current.Response.TransmitFile(strDirectory + ".zip");
HttpContext.Current.Response.Flush();