Stream GenerateCertificateBatchPdf(long batchID)
        {
            var ironPdfRender = new HtmlToPdf();

            ironPdfRender.PrintOptions.MarginLeft       = 0;
            ironPdfRender.PrintOptions.MarginTop        = 2;
            ironPdfRender.PrintOptions.MarginRight      = 0;
            ironPdfRender.PrintOptions.MarginBottom     = 0;
            ironPdfRender.PrintOptions.EnableJavaScript = true;
            ironPdfRender.PrintOptions.PaperSize        = PdfPrintOptions.PdfPaperSize.Custom;
            ironPdfRender.PrintOptions.InputEncoding    = Encoding.UTF8;
            ironPdfRender.PrintOptions.RenderDelay      = 500;

            var pdfDoc = ironPdfRender.RenderUrlAsPdf(
                $"{Request.Scheme}://{Request.Host}/Certificate/batch/preview/{batchID}");

            var headerFooter = new HtmlHeaderFooter();

            headerFooter.Height  = 0;
            headerFooter.Spacing = 0;
            pdfDoc.AddHTMLFooters(headerFooter, 0, 0, 0);
            pdfDoc.AddHTMLHeaders(headerFooter, 0, 0, 0);

            return(pdfDoc.Stream);
        }
Beispiel #2
0
        public byte[] GenerateLetterToPdf(string body)
        {
            var regex = new Regex("<img.*?src=\"(.*?)\"[^>]+>",
                                  RegexOptions.IgnoreCase);
            var matches = regex.Matches(body);

            for (int i = 0; i < matches.Count; i++)
            {
                var key = matches[i].Groups[1].Value;
                var uri = key.Replace("../..", _urlConfig.Value.File);
                body = body.Replace(key, uri, StringComparison.InvariantCultureIgnoreCase);
            }

            var ironPdfRender = new HtmlToPdf();

            ironPdfRender.PrintOptions.MarginLeft       = 0;
            ironPdfRender.PrintOptions.MarginTop        = 2;
            ironPdfRender.PrintOptions.MarginRight      = 0;
            ironPdfRender.PrintOptions.MarginBottom     = 0;
            ironPdfRender.PrintOptions.EnableJavaScript = true;
            ironPdfRender.PrintOptions.PaperSize        = PdfPrintOptions.PdfPaperSize.Custom;
            ironPdfRender.PrintOptions.InputEncoding    = Encoding.UTF8;
            ironPdfRender.PrintOptions.RenderDelay      = 500;

            var pdfDoc = ironPdfRender.RenderHtmlAsPdf(body);

            var headerFooter = new HtmlHeaderFooter();

            headerFooter.Height  = 0;
            headerFooter.Spacing = 0;
            pdfDoc.AddHTMLFooters(headerFooter, 0, 0, 0);
            pdfDoc.AddHTMLHeaders(headerFooter, 0, 0, 0);

            return(pdfDoc.BinaryData);
        }