public byte[] HtmlToPdf(string html, string pathToLogo, ExportContentType exportType) { var pdfConverter = GetPdfConverter(pathToLogo, exportType); var imageBaseUrl = _siteBaseUrl + "/images/"; return pdfConverter.GetPdfBytesFromHtmlString(html, imageBaseUrl); }
private PdfConverter GetPdfConverter(string pathToLogo, ExportContentType exportType) { var result = new PdfConverter { UseCrossRefStreams = false, AvoidImageBreak = true }; result.PdfDocumentOptions.TopMargin = 15; result.PdfDocumentOptions.BottomMargin = 15; result.PdfDocumentOptions.RightMargin = 20; result.PdfDocumentOptions.LeftMargin = 20; result.PdfDocumentOptions.PdfPageSize = PdfPageSize.Letter; result.PdfDocumentOptions.PdfPageOrientation = exportType == ExportContentType.Data ? PDFPageOrientation.Landscape : PDFPageOrientation.Portrait; result.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Best; result.PdfDocumentOptions.GenerateSelectablePdf = true; result.PdfDocumentOptions.ShowFooter = true; result.PdfFooterOptions.ShowPageNumber = true; result.PdfDocumentOptions.ShowHeader = true; System.Drawing.Image logoImag = System.Drawing.Image.FromFile(pathToLogo); result.PdfHeaderOptions.AddImageArea(new ImageArea(0,0, logoImag.Width, logoImag)); result.PdfDocumentOptions.JpegCompressionEnabled = true; result.PdfDocumentOptions.JpegCompressionLevel = 50; if (!string.IsNullOrEmpty(_converterLisenceKey)) { try { result.LicenseKey = _converterLisenceKey; } catch { //swallow } } return result; }