internal void AddContentString( IntPtr converter, IntPtr objectSettings, PdfObjectSettings pdfObjectSettings) { if (pdfObjectSettings is null) { throw new ArgumentNullException(nameof(pdfObjectSettings)); } if (string.IsNullOrEmpty(pdfObjectSettings.HtmlContent)) { throw new ArgumentException("Html content should not be empty"); } var encoding = pdfObjectSettings.Encoding ?? Encoding.UTF8; var length = encoding.GetByteCount(pdfObjectSettings.HtmlContent ?? string.Empty); var buffer = ArrayPool <byte> .Shared.Rent(length + 1); buffer[length] = 0; try { encoding.GetBytes( pdfObjectSettings.HtmlContent ?? string.Empty, 0, pdfObjectSettings.HtmlContent !.Length, buffer, 0); WkHtmlToPdfModule.AddObject(converter, objectSettings, buffer); } finally { ArrayPool <byte> .Shared.Return(buffer); } }
internal void AddContent( IntPtr converter, IntPtr objectSettings, PdfObjectSettings pdfObjectSettings) { if (pdfObjectSettings is null) { throw new ArgumentNullException(nameof(pdfObjectSettings)); } if (!string.IsNullOrEmpty(pdfObjectSettings.HtmlContent)) { AddContentString(converter, objectSettings, pdfObjectSettings); } else if (pdfObjectSettings.HtmlContentByteArray != null) { AddContentByteArray(converter, objectSettings, pdfObjectSettings.HtmlContentByteArray); } else if (pdfObjectSettings.HtmlContentStream != null) { AddContentStream(converter, objectSettings, pdfObjectSettings.HtmlContentStream); } else { throw new HtmlContentEmptyException( $"pdfObjectSettings should have non-empty {nameof(PdfObjectSettings.HtmlContent)}" + $" or {nameof(PdfObjectSettings.HtmlContentByteArray)} or {nameof(PdfObjectSettings.HtmlContentStream)}"); } }
public void ShouldBeProperlyInitialized() { // Act var sut = new PdfObjectSettings(); // Assert using (new AssertionScope()) { sut.LoadSettings.Should().NotBeNull(); sut.FooterSettings.Should().NotBeNull(); sut.HeaderSettings.Should().NotBeNull(); sut.WebSettings.Should().NotBeNull(); sut.BackLinks.Should().BeNull(); sut.CaptionText.Should().BeNull(); sut.Encoding.Should().BeNull(); sut.FontScale.Should().BeNull(); sut.ForwardLinks.Should().BeNull(); sut.HtmlContent.Should().BeNull(); sut.IncludeInOutline.Should().BeNull(); sut.Indentation.Should().BeNull(); sut.Page.Should().BeNull(); sut.PagesCount.Should().BeNull(); sut.ProduceForms.Should().BeNull(); sut.UseDottedLines.Should().BeNull(); sut.UseExternalLinks.Should().BeNull(); sut.UseLocalLinks.Should().BeNull(); sut.Xsl.Should().BeNull(); } }
public void ShouldAllowToSetValues() { // Arrange var backLinks = _fixture.Create <bool>(); var captionText = _fixture.Create <string>(); var encoding = _fixture.Create <Encoding>(); var fontScale = _fixture.Create <string>(); var footerSettings = _fixture.Create <SectionSettings>(); var forwardLinks = _fixture.Create <bool>(); var headerSettings = _fixture.Create <SectionSettings>(); var htmlContent = _fixture.Create <string>(); var includeInOutline = _fixture.Create <bool>(); var indentation = _fixture.Create <string>(); var loadSettings = _fixture.Create <LoadSettings>(); var page = _fixture.Create <string>(); var pagesCount = _fixture.Create <bool>(); var produceForms = _fixture.Create <bool>(); var useDottedLines = _fixture.Create <bool>(); var useExternalLinks = _fixture.Create <bool>(); var useLocalLinks = _fixture.Create <bool>(); var webSettings = _fixture.Create <WebSettings>(); var xsl = _fixture.Create <string>(); // Act var sut = new PdfObjectSettings { BackLinks = backLinks, CaptionText = captionText, Encoding = encoding, FontScale = fontScale, FooterSettings = footerSettings, ForwardLinks = forwardLinks, HeaderSettings = headerSettings, HtmlContent = htmlContent, IncludeInOutline = includeInOutline, Indentation = indentation, LoadSettings = loadSettings, Page = page, PagesCount = pagesCount, ProduceForms = produceForms, UseDottedLines = useDottedLines, UseExternalLinks = useExternalLinks, UseLocalLinks = useLocalLinks, WebSettings = webSettings, Xsl = xsl, }; // Assert using (new AssertionScope()) { sut.BackLinks.Should().Be(backLinks); sut.CaptionText.Should().Be(captionText); sut.Encoding.Should().Be(encoding); sut.FontScale.Should().Be(fontScale); sut.FooterSettings.Should().Be(footerSettings); sut.ForwardLinks.Should().Be(forwardLinks); sut.HeaderSettings.Should().Be(headerSettings); sut.HtmlContent.Should().Be(htmlContent); sut.IncludeInOutline.Should().Be(includeInOutline); sut.Indentation.Should().Be(indentation); sut.LoadSettings.Should().Be(loadSettings); sut.Page.Should().Be(page); sut.PagesCount.Should().Be(pagesCount); sut.ProduceForms.Should().Be(produceForms); sut.UseDottedLines.Should().Be(useDottedLines); sut.UseExternalLinks.Should().Be(useExternalLinks); sut.UseLocalLinks.Should().Be(useLocalLinks); sut.WebSettings.Should().Be(webSettings); sut.Xsl.Should().Be(xsl); } }