BackgroundExamples.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. using QuestPDF.Fluent;
  2. using QuestPDF.Helpers;
  3. using QuestPDF.Infrastructure;
  4. namespace QuestPDF.DocumentationExamples;
  5. public class BackgroundExamples
  6. {
  7. [Test]
  8. public void SolidColor()
  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.PageColor(Colors.White);
  19. page.Margin(25);
  20. var colors = new[]
  21. {
  22. Colors.LightBlue.Darken4,
  23. Colors.LightBlue.Darken3,
  24. Colors.LightBlue.Darken2,
  25. Colors.LightBlue.Darken1,
  26. Colors.LightBlue.Medium,
  27. Colors.LightBlue.Lighten1,
  28. Colors.LightBlue.Lighten2,
  29. Colors.LightBlue.Lighten3,
  30. Colors.LightBlue.Lighten4,
  31. Colors.LightBlue.Lighten5,
  32. Colors.LightBlue.Accent1,
  33. Colors.LightBlue.Accent2,
  34. Colors.LightBlue.Accent3,
  35. Colors.LightBlue.Accent4,
  36. };
  37. page.Content()
  38. .Height(150)
  39. .Width(420)
  40. .Row(row =>
  41. {
  42. foreach (var color in colors)
  43. row.RelativeItem().Background(color);
  44. });
  45. });
  46. })
  47. .GenerateImages(x => "background-solid.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
  48. }
  49. [Test]
  50. public void Gradient()
  51. {
  52. Document
  53. .Create(document =>
  54. {
  55. document.Page(page =>
  56. {
  57. page.MinSize(new PageSize(350, 0));
  58. page.MaxSize(new PageSize(350, 1000));
  59. page.DefaultTextStyle(x => x.FontSize(20));
  60. page.PageColor(Colors.White);
  61. page.Margin(25);
  62. page.Content()
  63. .Column(column =>
  64. {
  65. column.Spacing(25);
  66. column.Item()
  67. .BackgroundLinearGradient(0, [Colors.Red.Lighten2, Colors.Blue.Lighten2])
  68. .AspectRatio(2);
  69. column.Item()
  70. .BackgroundLinearGradient(45, [Colors.Green.Lighten2, Colors.LightGreen.Lighten2, Colors.Yellow.Lighten2])
  71. .AspectRatio(2);
  72. column.Item()
  73. .BackgroundLinearGradient(90, [Colors.Yellow.Lighten2, Colors.Amber.Lighten2, Colors.Orange.Lighten2])
  74. .AspectRatio(2);
  75. });
  76. });
  77. })
  78. .GenerateImages(x => "background-gradient.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
  79. }
  80. [Test]
  81. public void RoundedCorners()
  82. {
  83. Document
  84. .Create(document =>
  85. {
  86. document.Page(page =>
  87. {
  88. page.MinSize(new PageSize(0, 0));
  89. page.MaxSize(new PageSize(1000, 1000));
  90. page.DefaultTextStyle(x => x.FontSize(20));
  91. page.PageColor(Colors.White);
  92. page.Margin(25);
  93. page.Content()
  94. .Shrink()
  95. .Background(Colors.Grey.Lighten2)
  96. .CornerRadius(25)
  97. .Padding(25)
  98. .Text("Content with rounded corners");
  99. });
  100. })
  101. .GenerateImages(x => "background-rounded-corners.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
  102. }
  103. }