PageExamples.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. using QuestPDF.Companion;
  2. using QuestPDF.Fluent;
  3. using QuestPDF.Helpers;
  4. using QuestPDF.Infrastructure;
  5. namespace QuestPDF.DocumentationExamples;
  6. public class PageExamples
  7. {
  8. [Test]
  9. public void Simple()
  10. {
  11. Document
  12. .Create(document =>
  13. {
  14. document.Page(page =>
  15. {
  16. page.Size(PageSizes.A5);
  17. page.Margin(2, Unit.Centimetre);
  18. page.DefaultTextStyle(x => x.FontSize(24));
  19. page.Header()
  20. .Text("Hello, World!")
  21. .FontSize(48).Bold();
  22. page.Content()
  23. .PaddingVertical(25)
  24. .Text(Placeholders.LoremIpsum())
  25. .Justify();
  26. page.Footer()
  27. .AlignCenter()
  28. .Text(text =>
  29. {
  30. text.CurrentPageNumber();
  31. text.Span(" / ");
  32. text.TotalPages();
  33. });
  34. });
  35. })
  36. .GenerateImages(x => "page-simple.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
  37. }
  38. [Test]
  39. public void MainSlots()
  40. {
  41. Document
  42. .Create(document =>
  43. {
  44. document.Page(page =>
  45. {
  46. page.Size(PageSizes.A4);
  47. page.Margin(2, Unit.Centimetre);
  48. page.DefaultTextStyle(x => x.FontSize(24));
  49. page.Header()
  50. .Background(Colors.Grey.Lighten1)
  51. .Height(125)
  52. .AlignCenter()
  53. .AlignMiddle()
  54. .Text("Header");
  55. page.Content()
  56. .Background(Colors.Grey.Lighten2)
  57. .AlignCenter()
  58. .AlignMiddle()
  59. .Text("Content");
  60. page.Footer()
  61. .Background(Colors.Grey.Lighten1)
  62. .Height(75)
  63. .AlignCenter()
  64. .AlignMiddle()
  65. .Text("Footer");
  66. });
  67. })
  68. .GenerateImages(x => "page-main-slots.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
  69. }
  70. [Test]
  71. public void Foreground()
  72. {
  73. Document
  74. .Create(document =>
  75. {
  76. document.Page(page =>
  77. {
  78. page.Size(PageSizes.A4);
  79. page.Margin(2, Unit.Centimetre);
  80. page.DefaultTextStyle(x => x.FontSize(20));
  81. page.Header()
  82. .PaddingBottom(1, Unit.Centimetre)
  83. .Text("Report")
  84. .FontSize(30)
  85. .Bold();
  86. page.Content()
  87. .Text(Placeholders.Paragraphs())
  88. .ParagraphSpacing(1, Unit.Centimetre)
  89. .Justify();
  90. page.Foreground().Svg("Resources/draft-foreground.svg").FitArea();
  91. });
  92. })
  93. .GenerateImages(x => "page-foreground.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.High, RasterDpi = 144 });
  94. }
  95. [Test]
  96. public void Background()
  97. {
  98. Document
  99. .Create(document =>
  100. {
  101. document.Page(page =>
  102. {
  103. page.Size(PageSizes.A4.Landscape());
  104. page.Background().Svg("Resources/certificate-background.svg").FitArea();
  105. page.Content()
  106. .PaddingLeft(10, Unit.Centimetre)
  107. .PaddingRight(5 , Unit.Centimetre)
  108. .AlignMiddle()
  109. .Column(column =>
  110. {
  111. column.Item().Height(50).Svg("Resources/questpdf-logo.svg");
  112. column.Item().Height(50);
  113. column.Item().Text("CERTIFICATE").FontSize(64).ExtraBlack();
  114. column.Item().Height(25);
  115. column.Item()
  116. .Shrink().BorderBottom(1).Padding(10)
  117. .Text("Marcin Ziąbek").FontSize(32).Italic();
  118. column.Item().Height(10);
  119. column.Item()
  120. .Text($"has successfully completed the course \"QuestPDF Basics\" on {DateTime.Now:dd MMM yyyy}.")
  121. .FontSize(20).Light();
  122. });
  123. });
  124. })
  125. .GenerateImages(x => $"page-background.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  126. }
  127. }