ElementExamples.cs 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. using QuestPDF.Examples.Engine;
  2. using QuestPDF.Fluent;
  3. using QuestPDF.Helpers;
  4. using QuestPDF.Infrastructure;
  5. using SkiaSharp;
  6. namespace QuestPDF.Examples
  7. {
  8. public class ElementExamples : ExampleTestBase
  9. {
  10. //[ShowResult]
  11. [ImageSize(200, 150)]
  12. public void Placeholder(IContainer container)
  13. {
  14. container
  15. .Background("#FFF")
  16. .Padding(25)
  17. .Placeholder();
  18. }
  19. //[ShowResult]
  20. [ImageSize(300, 300)]
  21. public void Section(IContainer container)
  22. {
  23. container
  24. .Background("#FFF")
  25. .Padding(25)
  26. .Section(section =>
  27. {
  28. section
  29. .Header()
  30. .Background("#888")
  31. .Padding(10)
  32. .Text("Notes", TextStyle.Default.Size(16).Color("#FFF"));
  33. section
  34. .Content()
  35. .Background("#DDD")
  36. .Padding(10)
  37. .ExtendVertical()
  38. .Text(Helpers.Placeholders.LoremIpsum());
  39. });
  40. }
  41. //[ShowResult]
  42. [ImageSize(298, 421)]
  43. public void Page(IContainer container)
  44. {
  45. container
  46. .Background("#FFF")
  47. .Padding(15)
  48. .Page(page =>
  49. {
  50. page.Header()
  51. .Height(60)
  52. .Background("#BBB")
  53. .AlignCenter()
  54. .AlignMiddle()
  55. .Text("Header");
  56. page.Content()
  57. .Background("#DDD")
  58. .AlignCenter()
  59. .AlignMiddle()
  60. .Text("Content");
  61. page.Footer()
  62. .Height(30)
  63. .Background("#BBB")
  64. .AlignCenter()
  65. .AlignMiddle()
  66. .Text("Footer");
  67. });
  68. }
  69. //[ShowResult]
  70. [ImageSize(740, 200)]
  71. public void Row(IContainer container)
  72. {
  73. container
  74. .Background("#FFF")
  75. .Padding(20)
  76. .Stack(stack =>
  77. {
  78. stack.Element()
  79. .PaddingBottom(10)
  80. .AlignCenter()
  81. .Text("This Row element is 700pt wide");
  82. stack.Element().Row(row =>
  83. {
  84. row.ConstantColumn(100)
  85. .Background("#DDD")
  86. .Padding(10)
  87. .ExtendVertical()
  88. .Text("This column is 100 pt wide");
  89. row.RelativeColumn()
  90. .Background("#BBB")
  91. .Padding(10)
  92. .Text("This column takes 1/3 of the available space (200pt)");
  93. row.RelativeColumn(2)
  94. .Background("#DDD")
  95. .Padding(10)
  96. .Text("This column takes 2/3 of the available space (400pt)");
  97. });
  98. });
  99. }
  100. //[ShowResult]
  101. [ImageSize(500, 350)]
  102. public void Column(IContainer container)
  103. {
  104. container
  105. .Background("#FFF")
  106. .Padding(15)
  107. .Stack(column =>
  108. {
  109. column.Spacing(10);
  110. column
  111. .Element()
  112. .Background("#999")
  113. .Height(50);
  114. column
  115. .Element()
  116. .Background("#BBB")
  117. .Height(100);
  118. column
  119. .Element()
  120. .Background("#DDD")
  121. .Height(150);
  122. });
  123. }
  124. //[ShowResult]
  125. [ImageSize(300, 200)]
  126. public void Debug(IContainer container)
  127. {
  128. container
  129. .Padding(25)
  130. .Debug()
  131. .Padding(-5)
  132. .Row(row =>
  133. {
  134. row.RelativeColumn().Padding(5).Extend().Placeholder();
  135. row.RelativeColumn().Padding(5).Extend().Placeholder();
  136. });
  137. }
  138. //[ShowResult]
  139. [ImageSize(300, 200)]
  140. public void ElementEnd(IContainer container)
  141. {
  142. var text = "";
  143. container
  144. .Padding(10)
  145. .Element(x =>
  146. {
  147. if (string.IsNullOrWhiteSpace(text))
  148. x.Height(10).Width(50).Background("#DDD");
  149. else
  150. x.Text(text);
  151. });
  152. }
  153. //[ShowResult]
  154. [ImageSize(300, 200)]
  155. public void GridExample(IContainer container)
  156. {
  157. var textStyle = TextStyle.Default.Size(14);
  158. container
  159. .Padding(20)
  160. .AlignRight()
  161. .Grid(grid =>
  162. {
  163. grid.Spacing(5);
  164. grid.Columns(12);
  165. grid.Element(8).Background("#DDD").Height(50).Padding(5).Text("This is a short text", textStyle);
  166. grid.Element(4).Background("#BBB").Padding(5).Text("Showing how to...", textStyle);
  167. grid.Element(2).Background("#999").Height(50);
  168. grid.Element(4).Background("#AAA").Border(2).BorderColor("#666").Padding(5).Text("...generate", textStyle);
  169. grid.Element(6).Background("#CCC").Padding(5).Text("simple grids", textStyle.Size(18).Bold());
  170. grid.Element(8).Background("#DDD").Height(50);
  171. });
  172. }
  173. [ShowResult]
  174. [ImageSize(300, 300)]
  175. public void Layers(IContainer container)
  176. {
  177. container
  178. .Background("#FFF")
  179. .Padding(25)
  180. .Layers(layers =>
  181. {
  182. layers.Layer().Text("Something else");
  183. layers.PrimaryLayer().Stack(stack =>
  184. {
  185. stack.Element().PaddingTop(20).Text("Dupa 1");
  186. stack.Element().PaddingTop(40).Text("Dupa 2");
  187. });
  188. layers.Layer().Canvas((canvas, size) =>
  189. {
  190. using var paint = new SKPaint
  191. {
  192. Color = SKColors.Red,
  193. StrokeWidth = 5
  194. };
  195. canvas.Translate(size.Width / 2, size.Height / 2);
  196. canvas.DrawCircle(0, 0, 50, paint);
  197. });
  198. layers.Layer().Background("#8F00").Extend();
  199. layers.Layer().PaddingTop(40).Text("Super", TextStyle.Default.Size(24));
  200. });
  201. }
  202. }
  203. }