| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533 |
- using QuestPDF.Fluent;
- using QuestPDF.Helpers;
- using QuestPDF.Infrastructure;
- namespace QuestPDF.DocumentationExamples.Text;
- public class TextStyleExamples
- {
- [Test]
- public void FontSize()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(1000, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Column(column =>
- {
- column.Spacing(10);
- column.Item()
- .Text("This is small text (16pt)")
- .FontSize(16);
- column.Item()
- .Text("This is medium text (24pt)")
- .FontSize(24);
- column.Item()
- .Text("This is large text (36pt)")
- .FontSize(36);
- });
- });
- })
- .GenerateImages(x => "text-font-size.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
- }
-
- [Test]
- public void FontFamily()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(1000, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Column(column =>
- {
- column.Spacing(10);
- column.Item().Text("This is text with default font (Lato)");
- column.Item().Text("This is text with Times New Roman font")
- .FontFamily("Times New Roman");
- column.Item().Text("This is text with Courier New font")
- .FontFamily("Courier New");
- });
- });
- })
- .GenerateImages(x => "text-font-family.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
- }
-
- [Test]
- public void FontColor()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(1000, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("Each pixel consists of three sub-pixels: ");
- text.Span("red").FontColor(Colors.Red.Medium);
- text.Span(", ");
- text.Span("green").FontColor(Colors.Green.Medium);
- text.Span(" and ");
- text.Span("blue").FontColor(Colors.Blue.Medium);
- text.Span(".");
- });
- });
- })
- .GenerateImages(x => "text-font-color.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void BackgroundColor()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("The term ");
- text.Span("algorithm").BackgroundColor(Colors.Yellow.Lighten3).Bold();
- text.Span(" refers to a set of rules or steps used to solve a problem.");
- });
- });
- })
- .GenerateImages(x => "text-font-background.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void Italic()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("In this sentence, the word ");
- text.Span("important").Italic();
- text.Span(" is emphasized using italics.");
- });
- });
- })
- .GenerateImages(x => "text-font-italic.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void FontWeight()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("This sentence demonstrates ");
- text.Span("bold").Bold();
- text.Span(", ");
- text.Span("normal").NormalWeight();
- text.Span(", ");
- text.Span("light").Light();
- text.Span(" and ");
- text.Span("thin").Thin();
- text.Span(" font weights.");
- });
- });
- })
- .GenerateImages(x => "text-font-weight.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void Subscript()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("H");
- text.Span("2").Subscript();
- text.Span("O is the chemical formula for water.");
- });
- });
- })
- .GenerateImages(x => "text-subscript.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void Superscript()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(1000, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("E = mc");
- text.Span("2").Superscript();
- text.Span(" is the equation of mass-energy equivalence.");
- });
- });
- })
- .GenerateImages(x => "text-superscript.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void LineHeight()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Column(column =>
- {
- column.Spacing(20);
- float[] lineHeights = [0.75f, 1f, 2f];
- var paragraph = Placeholders.Paragraph();
-
- foreach (var lineHeight in lineHeights)
- {
- column
- .Item()
- .Background(Colors.Grey.Lighten3)
- .Padding(5)
- .Text(paragraph)
- .FontSize(16)
- .LineHeight(lineHeight);
- }
- });
- });
- })
- .GenerateImages(x => "text-line-height.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void LetterSpacing()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Column(column =>
- {
- column.Spacing(20);
-
- var letterSpacing = new[] { -0.08f, 0f, 0.2f };
- var paragraph = Placeholders.Sentence();
- foreach (var spacing in letterSpacing)
- {
- column
- .Item()
- .Background(Colors.Grey.Lighten3)
- .Padding(5)
- .Text(paragraph)
- .FontSize(18)
- .LetterSpacing(spacing);
- }
- });
- });
- })
- .GenerateImages(x => "text-letter-spacing.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void WordSpacing()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Column(column =>
- {
- column.Spacing(20);
-
- var wordSpacing = new[] { -0.2f, 0f, 0.4f };
- var paragraph = Placeholders.Sentence();
- foreach (var spacing in wordSpacing)
- {
- column.Item()
- .Background(Colors.Grey.Lighten3)
- .Padding(5)
- .Text(paragraph)
- .FontSize(16)
- .WordSpacing(spacing);
- }
- });
- });
- })
- .GenerateImages(x => "text-word-spacing.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void FontFallback()
- {
- Settings.UseEnvironmentFonts = false;
-
- 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()
- .Text("The Arabic word for programming is البرمجة.")
- .FontFamily("Lato", "Noto Sans Arabic");
- });
- })
- .GenerateImages(x => "text-font-fallback.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void FontFallbackEmoji()
- {
- Settings.UseEnvironmentFonts = false;
-
- 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()
- .Text("Popular emojis include 😊, 😂, ❤️, 👍, and 😎.")
- .FontFamily("Lato", "Noto Emoji");
- });
- })
- .GenerateImages(x => "text-font-fallback-emoji.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void TextFontFeatures()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Row(row =>
- {
- row.Spacing(25);
-
- row.RelativeItem()
- .Background(Colors.Grey.Lighten3)
- .Padding(10)
- .Column(column =>
- {
- column.Item().Text("Without ligatures").FontSize(16);
-
- column.Item()
- .Text("fly and fight")
- .FontSize(32)
- .DisableFontFeature(FontFeatures.StandardLigatures);
- });
-
- row.RelativeItem()
- .Background(Colors.Grey.Lighten3)
- .Padding(10)
- .Column(column =>
- {
- column.Item().Text("With ligatures").FontSize(16);
-
- column.Item().Text("fly and fight")
- .FontSize(32)
- .EnableFontFeature(FontFeatures.StandardLigatures);
- });
- });
- });
- })
- .GenerateImages(x => "text-font-features.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void DecorationTypes()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("There are a couple of available text decorations: ");
- text.Span("underline").Underline().FontColor(Colors.Red.Medium);
- text.Span(", ");
- text.Span("strikethrough").Strikethrough().FontColor(Colors.Green.Medium);
- text.Span(" and ");
- text.Span("overline").Overline().FontColor(Colors.Blue.Medium);
- text.Span(". ");
- });
- });
- })
- .GenerateImages(x => "text-decoration-types.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void DecorationStyles()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("Moreover, the decoration can be ");
-
- text.Span("solid").FontColor(Colors.Indigo.Medium).Underline().DecorationSolid();
- text.Span(", ");
- text.Span("double").FontColor(Colors.Blue.Medium).Underline().DecorationDouble();
- text.Span(", ");
- text.Span("wavy").FontColor(Colors.LightBlue.Medium).Underline().DecorationWavy();
- text.Span(", ");
- text.Span("dotted").FontColor(Colors.Cyan.Medium).Underline().DecorationDotted();
- text.Span(" or ");
- text.Span("dashed").FontColor(Colors.Green.Medium)
- .Underline().DecorationDashed();
- text.Span(".");
- });
- });
- })
- .GenerateImages(x => "text-decoration-styles.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
-
- [Test]
- public void DecorationsAdvanced()
- {
- Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.MinSize(new PageSize(0, 0));
- page.MaxSize(new PageSize(500, 1000));
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .Text(text =>
- {
- text.Span("This text contains a ");
-
- text.Span("seriuos")
- .Underline()
- .DecorationWavy()
- .DecorationColor(Colors.Red.Medium)
- .DecorationThickness(2);
-
- text.Span(" typo.");
- });
- });
- })
- .GenerateImages(x => "text-decoration-advanced.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
- }
- }
|