LineExamples.cs 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. using QuestPDF.Fluent;
  2. using QuestPDF.Helpers;
  3. using QuestPDF.Infrastructure;
  4. namespace QuestPDF.DocumentationExamples;
  5. public class LineExamples
  6. {
  7. [Test]
  8. public void VerticalLineExample()
  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.PageColor(Colors.White);
  20. page.Content()
  21. .Row(row =>
  22. {
  23. row.AutoItem().Text("Text on the left");
  24. row.AutoItem()
  25. .PaddingHorizontal(15)
  26. .LineVertical(3)
  27. .LineColor(Colors.Blue.Medium);
  28. row.AutoItem().Text("Text on the right");
  29. });
  30. });
  31. })
  32. .GenerateImages(x => "line-vertical.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  33. }
  34. [Test]
  35. public void HorizontalLineExample()
  36. {
  37. Document
  38. .Create(document =>
  39. {
  40. document.Page(page =>
  41. {
  42. page.MinSize(new PageSize(0, 0));
  43. page.MaxSize(new PageSize(1000, 1000));
  44. page.DefaultTextStyle(x => x.FontSize(20));
  45. page.Margin(25);
  46. page.PageColor(Colors.White);
  47. page.Content()
  48. .Column(column =>
  49. {
  50. column.Item().Text("Text above the line");
  51. column.Item()
  52. .PaddingVertical(10)
  53. .LineHorizontal(2)
  54. .LineColor(Colors.Blue.Medium);
  55. column.Item().Text("Text below the line");
  56. });
  57. });
  58. })
  59. .GenerateImages(x => "line-horizontal.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  60. }
  61. [Test]
  62. public void Thickness()
  63. {
  64. Document
  65. .Create(document =>
  66. {
  67. document.Page(page =>
  68. {
  69. page.MinSize(new PageSize(0, 0));
  70. page.MaxSize(new PageSize(1000, 1000));
  71. page.DefaultTextStyle(x => x.FontSize(20));
  72. page.Margin(25);
  73. page.PageColor(Colors.White);
  74. page.Content()
  75. .Column(column =>
  76. {
  77. column.Spacing(20);
  78. foreach (var thickness in new[] { 1, 2, 4, 8 })
  79. {
  80. column.Item()
  81. .Width(200)
  82. .LineHorizontal(thickness);
  83. }
  84. });
  85. });
  86. })
  87. .GenerateImages(x => "line-thickness.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  88. }
  89. [Test]
  90. public void SolidColor()
  91. {
  92. Document
  93. .Create(document =>
  94. {
  95. document.Page(page =>
  96. {
  97. page.MinSize(new PageSize(0, 0));
  98. page.MaxSize(new PageSize(1000, 1000));
  99. page.DefaultTextStyle(x => x.FontSize(20));
  100. page.Margin(25);
  101. page.PageColor(Colors.White);
  102. page.Content()
  103. .Column(column =>
  104. {
  105. var colors = new[]
  106. {
  107. Colors.Red.Medium,
  108. Colors.Green.Medium,
  109. Colors.Blue.Medium,
  110. };
  111. column.Spacing(20);
  112. foreach (var color in colors)
  113. {
  114. column.Item()
  115. .Width(200)
  116. .LineHorizontal(5)
  117. .LineColor(color);
  118. }
  119. });
  120. });
  121. })
  122. .GenerateImages(x => "line-color-solid.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  123. }
  124. [Test]
  125. public void Gradient()
  126. {
  127. Document
  128. .Create(document =>
  129. {
  130. document.Page(page =>
  131. {
  132. page.MinSize(new PageSize(0, 0));
  133. page.MaxSize(new PageSize(1000, 1000));
  134. page.DefaultTextStyle(x => x.FontSize(20));
  135. page.Margin(25);
  136. page.PageColor(Colors.White);
  137. page.Content()
  138. .Column(column =>
  139. {
  140. column.Spacing(20);
  141. column.Item()
  142. .Width(200)
  143. .LineHorizontal(5)
  144. .LineGradient([Colors.Red.Medium, Colors.Orange.Medium]);
  145. column.Item()
  146. .Width(200)
  147. .LineHorizontal(5)
  148. .LineGradient([Colors.Orange.Medium, Colors.Yellow.Medium, Colors.Lime.Medium]);
  149. column.Item()
  150. .Width(200)
  151. .LineHorizontal(5)
  152. .LineGradient([Colors.Blue.Lighten2, Colors.LightBlue.Lighten1, Colors.Cyan.Medium, Colors.Teal.Darken1, Colors.Green.Darken2]);
  153. });
  154. });
  155. })
  156. .GenerateImages(x => "line-color-gradient.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  157. }
  158. [Test]
  159. public void DashPattern()
  160. {
  161. Document
  162. .Create(document =>
  163. {
  164. document.Page(page =>
  165. {
  166. page.MinSize(new PageSize(0, 0));
  167. page.MaxSize(new PageSize(1000, 1000));
  168. page.DefaultTextStyle(x => x.FontSize(20));
  169. page.Margin(25);
  170. page.PageColor(Colors.White);
  171. page.Content()
  172. .Column(column =>
  173. {
  174. column.Spacing(20);
  175. column.Item()
  176. .Width(200)
  177. .LineHorizontal(5)
  178. .LineDashPattern([4f, 4f]);
  179. column.Item()
  180. .Width(200)
  181. .LineHorizontal(5)
  182. .LineDashPattern([12f, 12f]);
  183. column.Item()
  184. .Width(200)
  185. .LineHorizontal(5)
  186. .LineDashPattern([4f, 4f, 12f, 4f]);
  187. });
  188. });
  189. })
  190. .GenerateImages(x => "line-dash-pattern.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  191. }
  192. [Test]
  193. public void Complex()
  194. {
  195. Document
  196. .Create(document =>
  197. {
  198. document.Page(page =>
  199. {
  200. page.MinSize(new PageSize(0, 0));
  201. page.MaxSize(new PageSize(1000, 1000));
  202. page.DefaultTextStyle(x => x.FontSize(20));
  203. page.Margin(25);
  204. page.PageColor(Colors.White);
  205. page.Content()
  206. .Width(300)
  207. .LineHorizontal(8)
  208. .LineDashPattern([4, 4, 8, 8, 12, 12])
  209. .LineGradient([Colors.Red.Medium, Colors.Orange.Medium, Colors.Yellow.Medium]);
  210. });
  211. })
  212. .GenerateImages(x => "line-example.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  213. }
  214. }