Esempio n. 1
0
        public MemoryStream GeneratePdf(Uri url, PdfSettings pdfSettings = null)
        {
            var absoluteUrl = url.ToAbsolute();

            var pdfRenderer = CreateRenderer(null, pdfSettings);
            var pdf         = pdfRenderer.RenderUrlAsPdf(absoluteUrl);

            return(pdf.Stream);
        }
Esempio n. 2
0
        private HtmlToPdf CreateRenderer(string filename = null, PdfSettings pdfSettings = null)
        {
            if (pdfSettings == null)
            {
                pdfSettings = new PdfSettings();
            }

            var header = "<div style=\"overflow: auto;\">";

            if (pdfSettings.IsPreview)
            {
                header += "<span style=\"display:inline-block; float: left; font-size: 20px; color: #909090\">Förhandsgranskning</span>";
            }

            header += "<span style=\"display:inline-block; float:right; color: #909090\">{page} / {total-pages}</span>";
            header += "</div>";

            var title = pdfSettings.Title;

            if (string.IsNullOrEmpty(title))
            {
                title = filename;
            }

            var renderer = new IronPdf.HtmlToPdf();

            renderer.PrintOptions.PaperSize        = PdfPrintOptions.PdfPaperSize.A4;
            renderer.PrintOptions.ViewPortWidth    = 1024;
            renderer.PrintOptions.Title            = title;
            renderer.PrintOptions.EnableJavaScript = true;
            renderer.PrintOptions.RenderDelay      = 50; //ms
            renderer.PrintOptions.CssMediaType     = PdfPrintOptions.PdfCssMediaType.Screen;
            renderer.PrintOptions.MarginTop        = 25;
            renderer.PrintOptions.MarginBottom     = 10;
            renderer.PrintOptions.MarginLeft       = 25;
            renderer.PrintOptions.MarginRight      = 25;
            renderer.PrintOptions.Header           = new HtmlHeaderFooter()
            {
                Height       = 15,
                Spacing      = 5,
                HtmlFragment = header
            };

            var authCookieName = ConfigurationManager.AppSettings["Auth.OwinCookie"];
            var authCookie     = HttpContext.Current.Request.Cookies.Get(authCookieName);

            if (authCookie != null)
            {
                renderer.LoginCredentials.EnableCookies = true;
                renderer.LoginCredentials.CustomCookies[authCookie.Name] = authCookie.Value;
            }

            return(renderer);
        }
Esempio n. 3
0
        public FileStreamResult GeneratePdf(Uri url, string filename, PdfSettings pdfSettings = null)
        {
            var absoluteUrl = url.ToAbsolute();

            var pdfRenderer = CreateRenderer(filename, pdfSettings);
            var pdf         = pdfRenderer.RenderUrlAsPdf(absoluteUrl);

            FileStreamResult returnStream = new FileStreamResult(pdf.Stream, "application/pdf");

            returnStream.FileDownloadName = filename;

            return(returnStream);
        }