protected void btnGeneratePdf_Click1(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("<table>");
            sb.Append("<tr>");
            sb.Append("<th>Title</th>");
            sb.Append("<th>Author</th>");
            sb.Append("<th>PublishDate</th>");
            sb.Append("</tr>");
            MongoDbProvider.db.LoadData <Book>().ToList().ForEach(b =>
            {
                sb.Append("<tr>");
                sb.AppendFormat("<td>{0}</td>", b.Title);
                sb.AppendFormat("<td>{0}</td>", b.Author);
                sb.AppendFormat("<td>{0}</td>", b.PublishDate);
                sb.Append("</tr>");
            });
            sb.Append("</table>");

            PDFBuilder.HtmlToPdfBuilder builder = new PDFBuilder.HtmlToPdfBuilder(PageSize.LETTER);
            PDFBuilder.HtmlPdfPage      page    = builder.AddPage();
            page.AppendHtml(sb.ToString());
            byte[] file         = builder.RenderPdf();
            string tempFolder   = AppDomain.CurrentDomain.BaseDirectory + "PdfResult\\";
            string tempFileName = DateTime.Now.ToString("yyyy-MM-dd") + "-" + Guid.NewGuid() + ".pdf";

            if (Helpers.DirectoryExist(tempFolder))
            {
                if (!File.Exists(tempFolder + tempFileName))
                {
                    File.WriteAllBytes(tempFolder + tempFileName, file);
                }
            }
        }
Example #2
0
        protected void btnGeneratePdf_Click1(object sender, EventArgs e)
        {
            string str = string.Empty;

            using (StreamReader sr = new StreamReader(Server.MapPath("html.txt")))
            {
                str = sr.ReadToEnd();
            }

            StringBuilder sb = new StringBuilder();

            //sb.Append("<style>.th {background-color: red;}</style>");
            sb.Append("<table>");
            sb.Append("<tr>");
            sb.Append("<th class=\"th\">Title</th>");
            sb.Append("<th>Author</th>");
            sb.Append("<th>PublishDate</th>");
            sb.Append("</tr>");
            MongoDbProvider.db.LoadData <Book>().ToList().ForEach(b =>
            {
                sb.Append("<tr>");
                sb.AppendFormat("<td>{0}</td>", b.Title);
                sb.AppendFormat("<td>{0}</td>", b.Author);
                sb.AppendFormat("<td>{0}</td>", b.PublishDate);
                sb.Append("</tr>");
            });
            sb.Append("</table>");

            PDFBuilder.HtmlToPdfBuilder builder = new PDFBuilder.HtmlToPdfBuilder(PageSize.LETTER);
            //builder.ImportStylesheet(AppDomain.CurrentDomain.BaseDirectory + "style.css");

            PDFBuilder.HtmlPdfPage page = builder.AddPage();
            page.AppendHtml(str);
            byte[] file = builder.RenderPdf();

            string tempFolder   = AppDomain.CurrentDomain.BaseDirectory + "PdfResult\\";
            string tempFileName = DateTime.Now.ToString("yyyy-MM-dd") + "-" + Guid.NewGuid() + ".pdf";

            if (Helpers.DirectoryExist(tempFolder))
            {
                if (!File.Exists(tempFolder + tempFileName))
                {
                    File.WriteAllBytes(tempFolder + tempFileName, file);
                }
            }
        }
Example #3
0
        public static void Export()
        {
            var supermarketDb = new SuperMarketContext();
            var strBuilder    = new StringBuilder();

            var     dates      = supermarketDb.Dates.Select(x => x.SaleDate).ToArray();
            decimal grandTotal = 0m;

            strBuilder.Append("<table border='1'>");
            strBuilder.Append("<tr>");
            strBuilder.Append("<th style=\"font-size:16px; text-align:center;\" colspan='5'>Aggregated Sales Report</th>");
            strBuilder.Append("</tr>");
            strBuilder.Append("</table>");

            for (int i = 0; i < dates.Count(); i++)
            {
                strBuilder.Append("<table border='1'>");
                strBuilder.Append("<tr bgcolor='#BBBBBB'>");
                strBuilder.AppendFormat("<th colspan='5'>Date: {0}</th>", dates[i]);
                strBuilder.Append("</tr>");
                strBuilder.Append("<tr bgcolor='#BBBBBB'>");
                strBuilder.Append("<th class=\"th\"><b>Product Name</b></th>");
                strBuilder.Append("<th><b>Quantity</b></th>");
                strBuilder.Append("<th><b>Unit Price</b></th>");
                strBuilder.Append("<th><b>Location</b></th>");
                strBuilder.Append("<th><b>Sum</b></th>");
                strBuilder.Append("</tr>");

                string saleDate = dates[i];
                var    sales    =
                    from sale in supermarketDb.Sales
                    join product in supermarketDb.Products
                    on sale.ProductId equals product.ID
                    where sale.Date.SaleDate == saleDate
                    select new
                {
                    Product      = product.ProductName,
                    Quantity     = sale.Quantity,
                    UnitPrice    = sale.UnitPrice,
                    LocationName = sale.Location.Name,
                    Sum          = sale.Sum
                };

                decimal totalSum = 0;
                foreach (var sale in sales)
                {
                    totalSum = totalSum + sale.Sum;
                    strBuilder.Append("<tr>");
                    strBuilder.AppendFormat("<td>{0}</td>", sale.Product);
                    strBuilder.AppendFormat("<td>{0}</td>", sale.Quantity);
                    strBuilder.AppendFormat("<td>{0}</td>", sale.UnitPrice);
                    strBuilder.AppendFormat("<td>{0}</td>", sale.LocationName);
                    strBuilder.AppendFormat("<td>{0}</td>", sale.Sum);
                    strBuilder.Append("</tr>");
                }

                grandTotal = grandTotal + totalSum;

                strBuilder.Append("<tr>");
                strBuilder.AppendFormat("<td colspan='4' align=right>Total Sum for {0}: </td>", dates[i]);
                strBuilder.AppendFormat("<td>{0}</td>", totalSum);
                strBuilder.Append("</tr>");
                strBuilder.Append("</table>");

                if (i != 2)
                {
                    strBuilder.Append("<br />");
                }
            }

            strBuilder.Append("<table border='1'>");
            strBuilder.Append("<tr>");
            strBuilder.Append("<td colspan='4' align=right>Grand total: </td>");
            strBuilder.AppendFormat("<td>{0}</td>", grandTotal);
            strBuilder.Append("</tr>");
            strBuilder.Append("</table>");

            PDFBuilder.HtmlToPdfBuilder builder = new PDFBuilder.HtmlToPdfBuilder(PageSize.LETTER);
            PDFBuilder.HtmlPdfPage      page    = builder.AddPage();
            page.AppendHtml(strBuilder.ToString());

            byte[] file         = builder.RenderPdf();
            string tempFolder   = "../../../PDFReports/";
            string tempFileName = DateTime.Now.ToString("yyyy-MM-dd") + "-" + Guid.NewGuid() + ".pdf";

            if (Helpers.DirectoryExist(tempFolder))
            {
                if (!File.Exists(tempFolder + tempFileName))
                {
                    File.WriteAllBytes(tempFolder + tempFileName, file);
                }
            }
        }
Example #4
0
        public static void CreatePDFs()
        {
            Console.WriteLine("PDF Report creation started...");
            StringBuilder sb = new StringBuilder();

            using (var dbEF = new SupermarketEntities())
            {
                sb.Append("<table cellpadding='5' border='1'>");
                sb.Append("<tr><th align='center'><b>Aggregated Sales Report</b></th></tr>");
                sb.Append("</table>");
                sb.Append("<table cellpadding='5' border='1'>");

                decimal grandTotal = 0M;

                var db = dbEF.Sales.Select(x => x.Date).OrderBy(d => d.Value).Distinct();
                foreach (var dateTime in db)
                {
                    var date = DateTime.Parse(dateTime.ToString()).ToShortDateString();
                    //Console.WriteLine(dateTime);
                    sb.AppendFormat("<tr bgcolor='silver'><td colspan='5'>Date: {0}</td></tr>", date);
                    sb.Append("<tr bgcolor='silver'>");
                    sb.Append("<td><b>Product</b></td>");
                    sb.Append("<td><b>Quantity</b></td>");
                    sb.Append("<td><b>Unit Price</b></td>");
                    sb.Append("<td><b>Location</b></td>");
                    sb.Append("<td><b>Sum</b></td>");
                    sb.Append("</tr>");

                    var     d   = dbEF.Sales.Where(x => x.Date == dateTime);
                    decimal sum = 0M;
                    foreach (var item in d)
                    {
                        sb.Append("<tr>");
                        sb.AppendFormat("<td>{0}</td>", item.Product.ProductName);
                        sb.AppendFormat("<td>{0}</td>", item.Quanity);
                        sb.AppendFormat("<td>{0:F2}</td>", item.UnitPrice);
                        sb.AppendFormat("<td>{0}</td>", item.Location.LocationName);
                        sb.AppendFormat("<td>{0:F2}</td>", item.Sum);
                        sb.Append("</tr>");
                        sum += item.Sum;
                    }
                    grandTotal += sum;
                    sb.Append("<tr><td>...</td><td>...</td><td>...</td><td>...</td><td>...</td></tr>");
                    sb.AppendFormat("<tr><td colspan='4' align='right'>Total sum for {0}:</td><td><b>{1:F2}</b></td></tr>", date, sum);
                }
                sb.AppendFormat("<tr><td colspan='4' align='right'>Grand Total:</td><td><b>{0:F2}</b></td></tr>", grandTotal);

                sb.Append("</table>");
                Console.WriteLine("PDF Report generated.");
            }

            PDFBuilder.HtmlToPdfBuilder builder = new PDFBuilder.HtmlToPdfBuilder(PageSize.LETTER);
            PDFBuilder.HtmlPdfPage      page    = builder.AddPage();
            page.AppendHtml(sb.ToString());
            byte[] file         = builder.RenderPdf();
            string tempFolder   = "../../../PdfResult\\";
            string tempFileName = DateTime.Now.ToString("yyyy-MM-dd") + "-" + Guid.NewGuid() + ".pdf";

            if (Helpers.Helper.DirectoryExist(tempFolder))
            {
                if (!File.Exists(tempFolder + tempFileName))
                {
                    File.WriteAllBytes(tempFolder + tempFileName, file);
                }
            }
        }