Browse Source

Added examples for documentation

Marcin Ziąbek 10 months ago
parent
commit
88ca76572a

+ 130 - 0
Source/QuestPDF.DocumentationExamples/TableExamples.cs

@@ -0,0 +1,130 @@
+using QuestPDF.Fluent;
+using QuestPDF.Helpers;
+using QuestPDF.Infrastructure;
+
+namespace QuestPDF.DocumentationExamples;
+
+public class TableExamples
+{
+    [Test]
+    public void Basic()
+    {
+        Document
+            .Create(document =>
+            {
+                document.Page(page =>
+                {
+                    page.MinSize(new PageSize(0, 0));
+                    page.MaxSize(new PageSize(700, 1000));
+                    page.DefaultTextStyle(x => x.FontSize(20));
+                    page.Margin(25);
+
+                    page.Content()
+                        .Table(table =>
+                        {
+                            table.ColumnsDefinition(columns =>
+                            {
+                                columns.ConstantColumn(75);
+                                columns.ConstantColumn(150);
+                                columns.ConstantColumn(200);
+                                columns.ConstantColumn(200);
+                            });
+            
+                            table.Cell().Row(1).Column(3).ColumnSpan(2)
+                                .Element(HeaderCellStyle).AlignCenter()
+                                .Text("Predicted condition").Bold();
+                            
+                            table.Cell().Row(3).Column(1).RowSpan(2)
+                                .Element(HeaderCellStyle).RotateLeft().AlignCenter().AlignMiddle()
+                                .Text("Actual\ncondition").Bold();
+            
+                            table.Cell().Row(2).Column(3)
+                                .Element(HeaderCellStyle).AlignCenter()
+                                .Text("Positive (PP)");
+                            
+                            table.Cell().Row(2).Column(4)
+                                .Element(HeaderCellStyle).AlignCenter()
+                                .Text("Negative (PN)");
+            
+                            table.Cell().Row(3).Column(2)
+                                .Element(HeaderCellStyle).AlignMiddle().Text("Positive (P)");
+                            
+                            table.Cell().Row(4).Column(2)
+                                .Element(HeaderCellStyle).AlignMiddle()
+                                .Text("Negative (N)");
+            
+                            table.Cell()
+                                .Row(3).Column(3).Element(GoodCellStyle)
+                                .Text("True positive (TP)");
+                            
+                            table.Cell()
+                                .Row(3).Column(4).Element(BadCellStyle)
+                                .Text("False negative (FN)");
+            
+                            table.Cell().Row(4).Column(3)
+                                .Element(BadCellStyle).Text("False positive (FP)");
+                            
+                            table.Cell().Row(4).Column(4)
+                                .Element(GoodCellStyle).Text("True negative (TN)");
+
+                            static IContainer CellStyle(IContainer container, Color color)
+                                => container.Border(1).Background(color).PaddingHorizontal(10).PaddingVertical(15);
+
+                            static IContainer HeaderCellStyle(IContainer container) 
+                                => CellStyle(container, Colors.Grey.Lighten3);
+                            
+                            static IContainer GoodCellStyle(IContainer container) 
+                                => CellStyle(container, Colors.Green.Lighten4).DefaultTextStyle(x => x.FontColor(Colors.Green.Darken2));
+                            
+                            static IContainer BadCellStyle(IContainer container) 
+                                => CellStyle(container, Colors.Red.Lighten4).DefaultTextStyle(x => x.FontColor(Colors.Red.Darken2));
+                        });
+                });
+            })
+            .GenerateImages(x => "table-basic.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
+    }
+    
+    [Test]
+    public void ColumnsDefinition()
+    {
+        Document
+            .Create(document =>
+            {
+                document.Page(page =>
+                {
+                    page.MinSize(new PageSize(0, 0));
+                    page.MaxSize(new PageSize(700, 1000));
+                    page.DefaultTextStyle(x => x.FontSize(20));
+                    page.Margin(25);
+
+                    page.Content()
+                        .Width(325)
+                        .Table(table =>
+                        {
+                            table.ColumnsDefinition(columns =>
+                            {
+                                columns.ConstantColumn(100);
+                                columns.RelativeColumn();
+                                columns.RelativeColumn(2);
+                            });
+
+                            table.Cell().ColumnSpan(3)
+                                .Background(Colors.Grey.Lighten2).Element(CellStyle)
+                                .Text("Total width: 325px");
+                            
+                            table.Cell().Element(CellStyle).Text("C: 100");
+                            table.Cell().Element(CellStyle).Text("R: 1");
+                            table.Cell().Element(CellStyle).Text("R: 2");
+                            
+                            table.Cell().Element(CellStyle).Text("100px");
+                            table.Cell().Element(CellStyle).Text("75px");
+                            table.Cell().Element(CellStyle).Text("150px");
+
+                            static IContainer CellStyle(IContainer container)
+                                => container.Border(1).Padding(10);
+                        });
+                });
+            })
+            .GenerateImages(x => "table-columns-definition.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
+    }
+}

+ 27 - 0
Source/QuestPDF.DocumentationExamples/Text/ParagraphStyleExamples.cs

@@ -6,6 +6,33 @@ namespace QuestPDF.DocumentationExamples.Text;
 
 public class ParagraphStyleExamples
 {
+    [Test]
+    public void DefaultTextStyle()
+    {
+        Document
+            .Create(document =>
+            {
+                document.Page(page =>
+                {
+                    page.MinSize(new PageSize(0, 0));
+                    page.MaxSize(new PageSize(400, 1000));
+                    page.DefaultTextStyle(x => x.FontSize(20));
+                    page.Margin(25);
+
+                    page.Content()
+                        .Text(text =>
+                        {
+                            text.DefaultTextStyle(x => x.Light().LetterSpacing(-0.1f).WordSpacing(0.1f));
+
+                            text.Span("Changing typography settings helps creating ");
+                            text.Span("significant").LetterSpacing(0.2f).Black().BackgroundColor(Colors.Grey.Lighten2);
+                            text.Span(" visual contrast.");
+                        });
+                });
+            })
+            .GenerateImages(x => "text-paragraph-default-style.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
+    }
+    
     [Test]
     public void TextAlignment()
     {