PlaceholderExamples.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. using QuestPDF.Fluent;
  2. using QuestPDF.Helpers;
  3. using QuestPDF.Infrastructure;
  4. namespace QuestPDF.DocumentationExamples;
  5. public class PlaceholderExamples
  6. {
  7. [Test]
  8. public void TextExample()
  9. {
  10. Document
  11. .Create(document =>
  12. {
  13. document.Page(page =>
  14. {
  15. page.MinSize(new PageSize(0, 0));
  16. page.MaxSize(new PageSize(1000, 1000));
  17. page.DefaultTextStyle(x => x.FontSize(20));
  18. page.Margin(25);
  19. page.Content()
  20. .Column(column =>
  21. {
  22. column.Spacing(15);
  23. AddItem("Name", Placeholders.Name());
  24. AddItem("Email", Placeholders.Email());
  25. AddItem("Phone", Placeholders.PhoneNumber());
  26. AddItem("Date", Placeholders.ShortDate());
  27. AddItem("Time", Placeholders.Time());
  28. void AddItem(string label, string value)
  29. {
  30. column.Item().Text(text =>
  31. {
  32. text.Span($"{label}: ").Bold();
  33. text.Span(value);
  34. });
  35. }
  36. });
  37. });
  38. })
  39. .GenerateImages(x => "placeholders-text.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
  40. }
  41. [Test]
  42. public void BackgroundColorExample()
  43. {
  44. Document
  45. .Create(document =>
  46. {
  47. document.Page(page =>
  48. {
  49. page.MinSize(new PageSize(320, 0));
  50. page.MaxSize(new PageSize(320, 1000));
  51. page.DefaultTextStyle(x => x.FontSize(20));
  52. page.Margin(25);
  53. page.Content()
  54. .Grid(grid =>
  55. {
  56. grid.Columns(5);
  57. grid.Spacing(5);
  58. foreach (var _ in Enumerable.Range(0, 25))
  59. {
  60. grid.Item()
  61. .Height(50)
  62. .Width(50)
  63. .Background(Placeholders.BackgroundColor());
  64. }
  65. });
  66. });
  67. })
  68. .GenerateImages(x => "placeholders-color-background.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
  69. }
  70. [Test]
  71. public void ColorExample()
  72. {
  73. Document
  74. .Create(document =>
  75. {
  76. document.Page(page =>
  77. {
  78. page.MinSize(new PageSize(0, 0));
  79. page.MaxSize(new PageSize(500, 1000));
  80. page.DefaultTextStyle(x => x.FontSize(20));
  81. page.Margin(25);
  82. page.Content()
  83. .Column(column =>
  84. {
  85. column.Spacing(10);
  86. foreach (var i in Enumerable.Range(0, 5))
  87. {
  88. column.Item()
  89. .Text(Placeholders.Sentence())
  90. .FontColor(Placeholders.Color());
  91. }
  92. });
  93. });
  94. })
  95. .GenerateImages(x => "placeholders-color.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  96. }
  97. [Test]
  98. public void ImageExample()
  99. {
  100. Document
  101. .Create(document =>
  102. {
  103. document.Page(page =>
  104. {
  105. page.MinSize(new PageSize(0, 0));
  106. page.MaxSize(new PageSize(1000, 1000));
  107. page.DefaultTextStyle(x => x.FontSize(20));
  108. page.Margin(25);
  109. page.Content()
  110. .Width(200)
  111. .Column(column =>
  112. {
  113. column.Spacing(10);
  114. // provide an exact image resolution
  115. column.Item()
  116. .Image(Placeholders.Image(100, 50));
  117. // specify physical width and height of the image
  118. column.Item()
  119. .Width(200)
  120. .Height(150)
  121. .Image(Placeholders.Image);
  122. // specify target physical width and aspect ratio
  123. column.Item()
  124. .Width(200)
  125. .AspectRatio(3 / 2f)
  126. .Image(Placeholders.Image);
  127. });
  128. });
  129. })
  130. .GenerateImages(x => "placeholders-image.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  131. }
  132. [Test]
  133. public void ElementExample()
  134. {
  135. Document
  136. .Create(document =>
  137. {
  138. document.Page(page =>
  139. {
  140. page.Size(PageSizes.A5);
  141. page.DefaultTextStyle(x => x.FontSize(20));
  142. page.Margin(25);
  143. page.Header()
  144. .Height(100)
  145. .Placeholder("Header");
  146. page.Content()
  147. .PaddingVertical(25)
  148. .Placeholder();
  149. page.Footer()
  150. .Height(100)
  151. .Placeholder("Footer");
  152. });
  153. })
  154. .GenerateImages(x => "placeholder-element.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.High, RasterDpi = 144 });
  155. }
  156. }