From f4c9f8b3c2935d16cf516c32294868958fddb36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Zi=C4=85bek?= Date: Mon, 13 Sep 2021 01:06:06 +0200 Subject: [PATCH] Added text rendering tests --- QuestPDF.Examples/TextExamples.cs | 88 ++++++++++++++++--------------- QuestPDF/Fluent/TextExtensions.cs | 2 + 2 files changed, 47 insertions(+), 43 deletions(-) diff --git a/QuestPDF.Examples/TextExamples.cs b/QuestPDF.Examples/TextExamples.cs index 4a1c4de..b80a33b 100644 --- a/QuestPDF.Examples/TextExamples.cs +++ b/QuestPDF.Examples/TextExamples.cs @@ -35,33 +35,7 @@ namespace QuestPDF.Examples text.Span(Placeholders.LoremIpsum()); - text.NewLine(); - - text.Span("This text is a normal text, "); - text.Span("this is a bold text, ", TextStyle.Default.Bold()); - text.Span("this is a red and underlined text, ", TextStyle.Default.Color(Colors.Red.Medium).Underlined()); - text.Span("and this is slightly bigger text.", TextStyle.Default.Size(16)); - - text.NewLine(); - - text.Span("The new text element also supports injecting custom content between words: "); - text.Element().PaddingBottom(-10).Height(16).Width(32).Image(Placeholders.Image); - text.Span("."); - - text.NewLine(); - - text.Span("This is page number "); - text.CurrentPageNumber(); - text.Span(" out of "); - text.TotalPages(); - - text.NewLine(); - - text.ExternalLocation("Please visit QuestPDF website", "https://www.questpdf.com"); - - text.NewLine(); - - text.Span(Placeholders.Sentence()); + text.Line("This is target text that does not show up. > This is a short sentence that will be wrapped into second line hopefully, right? <"); }); }); } @@ -84,7 +58,6 @@ namespace QuestPDF.Examples .Border(1) .Padding(5) .Padding(10) - .Debug() .Text(text => { text.DefaultTextStyle(TextStyle.Default); @@ -93,52 +66,61 @@ namespace QuestPDF.Examples text.Span(Placeholders.LoremIpsum()); - text.NewLine(); + text.EmptyLine(); text.Span("This text is a normal text, "); text.Span("this is a bold text, ", TextStyle.Default.Bold()); text.Span("this is a red and underlined text, ", TextStyle.Default.Color(Colors.Red.Medium).Underlined()); text.Span("and this is slightly bigger text.", TextStyle.Default.Size(16)); - text.NewLine(); + text.EmptyLine(); text.Span("The new text element also supports injecting custom content between words: "); text.Element().PaddingBottom(-10).Height(16).Width(32).Image(Placeholders.Image); text.Span("."); - text.NewLine(); + text.EmptyLine(); text.Span("This is page number "); text.CurrentPageNumber(); text.Span(" out of "); text.TotalPages(); - text.NewLine(); + text.EmptyLine(); text.ExternalLocation("Please visit QuestPDF website", "https://www.questpdf.com"); + + text.EmptyLine(); + + text.Span(Placeholders.Paragraphs()); - text.NewLine(); - - text.Span("This is target text that does not show up."); + + text.EmptyLine(); + + text.Span(Placeholders.Paragraphs(), TextStyle.Default.Italic()); + + text.Line("This is target text that does not show up. " + Placeholders.Paragraph()); }); }); } - + [Test] - public void PageNumber() + public void HugeList() { RenderingTest .Create() - .PageSize(500, 400) + .PageSize(PageSizes.A4) .FileName() - .ProduceImages() + .ProducePdf() .ShowResults() .Render(container => { container + .Padding(20) .Padding(10) .Box() .Border(1) + .Padding(5) .Padding(10) .Text(text => { @@ -146,10 +128,30 @@ namespace QuestPDF.Examples text.AlignLeft(); text.ParagraphSpacing(10); - text.Span("This is page number "); - text.CurrentPageNumber(); - text.Span(" out of "); - text.TotalPages(); + text.Span("This text is a normal text, "); + text.Span("this is a bold text, ", TextStyle.Default.Bold()); + text.Span("this is a red and underlined text, ", TextStyle.Default.Color(Colors.Red.Medium).Underlined()); + text.Span("and this is slightly bigger text.", TextStyle.Default.Size(16)); + + text.Span("The new text element also supports injecting custom content between words: "); + text.Element().PaddingBottom(-10).Height(16).Width(32).Image(Placeholders.Image); + text.Span("."); + + text.EmptyLine(); + + foreach (var i in Enumerable.Range(1, 100)) + { + text.Line($"{i}: {Placeholders.Paragraph()}"); + + text.EmptyLine(); + + text.ExternalLocation("Please visit QuestPDF website", "https://www.questpdf.com"); + + text.Span("This is page number "); + text.CurrentPageNumber(); + text.Span(" out of "); + text.TotalPages(); + } }); }); } diff --git a/QuestPDF/Fluent/TextExtensions.cs b/QuestPDF/Fluent/TextExtensions.cs index c4eff42..b9b5b0d 100644 --- a/QuestPDF/Fluent/TextExtensions.cs +++ b/QuestPDF/Fluent/TextExtensions.cs @@ -5,6 +5,7 @@ using QuestPDF.Elements; using QuestPDF.Elements.Text; using QuestPDF.Elements.Text.Items; using QuestPDF.Infrastructure; +using static System.String; namespace QuestPDF.Fluent { @@ -53,6 +54,7 @@ namespace QuestPDF.Fluent style ??= DefaultStyle; var items = text + .Replace("\r", string.Empty) .Split(new[] { '\n' }, StringSplitOptions.None) .Select(x => new TextBlockSpan {