Esempio n. 1
0
        public IActionResult CreatePDF()
        {
            var predicate = PredicateBuilder.True <Order>();

            predicate = predicate.And(x => x.Deleted == false);

            var model = orderRepository.GetAll(predicate);

            var list = model.Select(x => new OrderDto()
            {
                Amount     = x.Amount,
                PersonId   = x.PersonId,
                PersonName = x.Person.Name + " " + x.Person.LastName,
                Total      = x.OrderDetails.Sum(e => e.Product.Price),
                Date       = x.CreatedDate.ToString("dd/MM/yyyy"),
                OrderId    = x.Id
            }).ToList();

            var globalSettings = new GlobalSettings
            {
                ColorMode   = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize   = PaperKind.A4,
                Margins     = new MarginSettings {
                    Top = 10
                },
                DocumentTitle = "PDF Report"
            };

            var objectSettings = new ObjectSettings
            {
                PagesCount     = true,
                HtmlContent    = TemplateGenerator.GetOrderHTMLString(list),
                WebSettings    = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") },
                HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true },
                FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" }
            };

            var pdf = new HtmlToPdfDocument()
            {
                GlobalSettings = globalSettings,
                Objects        = { objectSettings }
            };

            //var converter = new SynchronizedConverter(new PdfTools());

            var file = converter.Convert(pdf);

            return(File(file, "application/pdf"));
        }