Browse Source

Added text rendering tests

Marcin Ziąbek 4 years ago
parent
commit
ae32511172
2 changed files with 47 additions and 43 deletions
  1. 45 43
      QuestPDF.Examples/TextExamples.cs
  2. 2 0
      QuestPDF/Fluent/TextExtensions.cs

+ 45 - 43
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();
+                            }
                         });
                 });
         }

+ 2 - 0
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
                 {