using Swift.DAL.SwiftDAL; using Swift.web.Component.Grid; using Swift.web.Component.Grid.gridHelper; using Swift.web.Library; using System; using System.Collections.Generic; using System.Data; using System.Text; namespace Swift.web { public partial class DownloadPDF : System.Web.UI.Page { private SwiftDao dao = new SwiftDao(); protected void Page_Load(object sender, EventArgs e) { if (GetStatic.ReadQueryString("mode", "") == "") { getPdfDownload(); } } private void getPdfDownload() { var data = ""; var mode = GetStatic.ReadQueryString("mode", "grid").ToLower(); if (mode == "grid") { data = GeneratePDFForGrid(); } content.InnerHtml = data.ToString(); //GetStatic.CallJSFunction(Page, "GetPDF()"); // GetPdfDownloadDone(data); } //private void GetPdfDownloadDone(string data) //{ // // instantiate a html to pdf converter object // HtmlToPdf converter = new HtmlToPdf(); // //// set converter options converter.Options.PdfPageSize = PdfPageSize.A4; // converter.Options.PdfPageOrientation = PdfPageOrientation.Landscape; // converter.Options.WebPageWidth = 1024; converter.Options.WebPageHeight = 0; // //// create a new pdf document converting an url PdfDocument doc = converter.ConvertHtmlString(data); // //// save pdf document doc.Save(Response, true, "Sample.pdf"); // //// close pdf document // doc.Close(); //} private string GeneratePDFForGrid() { var sql = GetStatic.ReadSession("exportSource", ""); if (string.IsNullOrEmpty(sql)) return ""; var ds = dao.ExecuteDataset(sql); var columnList = (List)Session["grid_column"]; if (ds == null || columnList == null) return ""; var dt = ds.Tables[1]; var html = new StringBuilder(""); html.Append(""); foreach (var column in columnList) { if (column.Description != "") html.Append(""); } html.Append(""); foreach (DataRow dr in dt.Rows) { html.Append(""); foreach (var column in columnList) { switch (column.Type.ToUpper()) { case "M": html.Append(""); break; case "D": html.Append(""); break; case "DT": html.Append(""); break; case "NOSORT": if (column.Description.Trim() != "") html.Append(""); break; case "CHECKBOX": break; default: html.Append(""); break; } } html.Append(""); } html.Append("
" + column.Description + "
" + SwiftGrid.FormatData(dr[column.Key].ToString(), "M") + "" + SwiftGrid.FormatData(dr[column.Key].ToString(), "D") + "" + SwiftGrid.FormatData(dr[column.Key].ToString(), "DT") + "" + dr[column.Key] + "" + dr[column.Key] + "
"); return html.ToString(); } } }