Esempio n. 1
0
 public PdfResult(IHtmlToPdfConverter converter, Stream htmlFile, HtmlToPdfSettings settings, string viewName) : base()
 {
     ViewName        = viewName;
     _converter      = converter;
     _settings       = settings;
     _htmlFileSource = htmlFile;
 }
Esempio n. 2
0
 /// <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());
     }
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        /// <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());
        }