Browse Source

Documentation Examples: List

Marcin Ziąbek 9 months ago
parent
commit
c4e977f12e

+ 122 - 0
Source/QuestPDF.DocumentationExamples/ListExamples.cs

@@ -0,0 +1,122 @@
+using QuestPDF.Fluent;
+using QuestPDF.Helpers;
+using QuestPDF.Infrastructure;
+
+namespace QuestPDF.DocumentationExamples;
+
+public class ListExamples
+{
+    [Test]
+    public void BulletpointExample()
+    {
+        Document
+            .Create(document =>
+            {
+                document.Page(page =>
+                {
+                    page.MinSize(new PageSize(0, 0));
+                    page.MaxSize(new PageSize(350, 1000));
+                    page.DefaultTextStyle(x => x.FontSize(20));
+                    page.Margin(25);
+
+                    page.Content() 
+                        .Column(column =>
+                        {
+                            column.Spacing(10);
+                            
+                            foreach (var i in Enumerable.Range(1, 7))
+                            {
+                                column.Item().Row(row =>
+                                {
+                                    row.ConstantItem(26).Image("Resources/bulletpoint.png");
+                                    row.ConstantItem(5);
+                                    row.RelativeItem().Text(Placeholders.Label());
+                                });
+                            }
+                        });
+                });
+            })
+            .GenerateImages(x => "list-unordered.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
+    }
+    
+    [Test]
+    public void OrderedExample()
+    {
+        Document
+            .Create(document =>
+            {
+                document.Page(page =>
+                {
+                    page.MinSize(new PageSize(0, 0));
+                    page.MaxSize(new PageSize(600, 1000));
+                    page.DefaultTextStyle(x => x.FontSize(20));
+                    page.Margin(25);
+
+                    page.Content() 
+                        .Column(column =>
+                        {
+                            column.Spacing(10);
+                            
+                            foreach (var i in Enumerable.Range(1, 11))
+                            {
+                                column.Item().Row(row =>
+                                {
+                                    row.ConstantItem(35).Text($"{i}.");
+                                    row.RelativeItem().Text(Placeholders.Sentence());
+                                });
+                            }
+                        });
+                });
+            })
+            .GenerateImages(x => "list-ordered.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
+    }
+    
+    [Test]
+    public void Nested()
+    {
+        Document
+            .Create(document =>
+            {
+                document.Page(page =>
+                {
+                    page.MinSize(new PageSize(0, 0));
+                    page.MaxSize(new PageSize(600, 1000));
+                    page.DefaultTextStyle(x => x.FontSize(20));
+                    page.Margin(25);
+
+                    page.Content() 
+                        .Column(column =>
+                        {
+                            const float nestingSize = 25;
+                            
+                            column.Spacing(10);
+                            
+                            column.Item()
+                                .Text("Algorithm: Checking if a Number is Prime")
+                                .FontSize(24).FontColor(Colors.Blue.Darken2);
+
+                            AddListItem(0, "1.", "Handle special cases");
+                            AddListItem(1, "a)", "If n is less than 2, return false (not prime).");
+                            AddListItem(1, "b)", "If n is 2, return true (prime).");
+                            
+                            AddListItem(0, "2.", "Check divisibility");
+                            AddListItem(1, "-", "Iterate through numbers from 2 to n - 1:");
+                            AddListItem(2, "-", "If n is divisible by any of these numbers, return false.");
+                            
+                            AddListItem(0, "3.", "Return true (if no divisors were found, n is prime).");
+
+                            void AddListItem(int nestingLevel, string bulletText, string text)
+                            {
+                                column.Item().Row(row =>
+                                {
+                                    row.ConstantItem(nestingSize * nestingLevel);
+                                    row.ConstantItem(nestingSize).Text(bulletText);
+                                    row.RelativeItem().Text(text);
+                                });
+                            }
+                        });
+                });
+            })
+            .GenerateImages(x => "list-nested.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
+    }
+}

BIN
Source/QuestPDF.DocumentationExamples/Resources/bulletpoint.png