public PdfResult(IHtmlToPdfConverter converter, Stream htmlFile, HtmlToPdfSettings settings, string viewName) : base() { ViewName = viewName; _converter = converter; _settings = settings; _htmlFileSource = htmlFile; }
/// <summary> /// Generate pdf from html string with custom settings. /// </summary> /// <param name="settings">Pdf convertation settings</param> /// <param name="htmlString"></param> /// <returns>Pdf data is an byte array.</returns> public byte[] ConvertToPdfAsArray(HtmlToPdfSettings settings, string htmlString) { using (var pdfStream = (MemoryStream)ConvertToPdfAsStream(settings, htmlString)) { return(pdfStream.ToArray()); } }
public void ShouldConvertToLandscapePdf() { var converter = new HtmlToPdfConverter(); var settings = new HtmlToPdfSettings() { CompressionLevel = PdfCompressionLevel.NoCompression, Margin = "25 25 25 25", PageOrientation = PdfPageOrientation.Landscape, PageSize = PdfPageSize.A3, Standart = PdfStandart.PdfA }; var pdfFile = converter.ConvertToPdfAsArray(settings, SpecifiedHtmlString); var pdfReader = new PdfReader(pdfFile); var firstPdfPage = pdfReader.GetPageSize(1); firstPdfPage.Width.ShouldBeGreaterThanOrEqualTo(firstPdfPage.Height); }
public void ShouldConvertToB4Pdf() { var converter = new HtmlToPdfConverter(); var settings = new HtmlToPdfSettings() { CompressionLevel = PdfCompressionLevel.NoCompression, Margin = "25 25 25 25", PageOrientation = PdfPageOrientation.Portrait, PageSize = PdfPageSize.B4, Standart = PdfStandart.PdfA }; var pdfFile = converter.ConvertToPdfAsArray(settings, SpecifiedHtmlString); var pdfReader = new PdfReader(pdfFile); var firstPdfPage = pdfReader.GetPageSize(1); firstPdfPage.Width.ShouldBe(709); firstPdfPage.Height.ShouldBe(1002); }
/// <summary> /// Generate pdf from html string with custom settings. /// </summary> /// <param name="settings">Pdf convertation settings</param> /// <param name="htmlString"></param> /// <returns>Pdf data is an memory stream.</returns> public Stream ConvertToPdfAsStream(HtmlToPdfSettings settings, string htmlString) { if (settings == null) { throw new ArgumentNullException("settings", "Pdf settings is null"); } if (string.IsNullOrEmpty(htmlString)) { throw new ArgumentNullException("htmlString", "Source html is empty"); } ApplyUserSettings(settings); var pdfContainer = _internalConverter.ConvertHtmlString(htmlString); var pdfStream = new MemoryStream(); pdfContainer.Save(pdfStream); return(pdfStream); }
/// <summary> /// Apply user settings to internal converter settings /// </summary> /// <param name="settings">Pdf convertation settings</param> private void ApplyUserSettings(HtmlToPdfSettings settings) { if (settings.Margin != null) { var pdfMargin = settings.Margin.Split(MarginValuesSeparator); if (pdfMargin.Length != MarginValuesAmount) { throw new FormatException("Margin field should contains 4 values"); } _internalConverter.Options.MarginTop = Convert.ToInt32(pdfMargin[0]); _internalConverter.Options.MarginRight = Convert.ToInt32(pdfMargin[1]); _internalConverter.Options.MarginBottom = Convert.ToInt32(pdfMargin[2]); _internalConverter.Options.MarginLeft = Convert.ToInt32(pdfMargin[3]); } _internalConverter.Options.PdfStandard = (PdfStandard)Enum.Parse(typeof(PdfStandard), settings.Standart.ToString()); _internalConverter.Options.PdfPageSize = (SelectPdf.PdfPageSize)Enum.Parse(typeof(SelectPdf.PdfPageSize), settings.PageSize.ToString()); _internalConverter.Options.PdfPageOrientation = (SelectPdf.PdfPageOrientation)Enum.Parse(typeof(SelectPdf.PdfPageOrientation), settings.PageOrientation.ToString()); _internalConverter.Options.PdfCompressionLevel = (SelectPdf.PdfCompressionLevel)Enum.Parse(typeof(SelectPdf.PdfCompressionLevel), settings.CompressionLevel.ToString()); }