MultiColumnExamples.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. using QuestPDF.Fluent;
  2. using QuestPDF.Helpers;
  3. using QuestPDF.Infrastructure;
  4. namespace QuestPDF.DocumentationExamples;
  5. public class MultiColumnExamples
  6. {
  7. [Test]
  8. public void Example()
  9. {
  10. Document
  11. .Create(document =>
  12. {
  13. document.Page(page =>
  14. {
  15. page.MinSize(new PageSize(650, 0));
  16. page.MaxSize(new PageSize(650, 650));
  17. page.DefaultTextStyle(x => x.FontSize(12));
  18. page.Margin(25);
  19. page.Content()
  20. .MultiColumn(multiColumn =>
  21. {
  22. multiColumn.Columns(3);
  23. multiColumn.Spacing(25);
  24. multiColumn
  25. .Content()
  26. .Column(column =>
  27. {
  28. column.Spacing(15);
  29. foreach (var sectionId in Enumerable.Range(0, 3))
  30. {
  31. foreach (var textId in Enumerable.Range(0, 3))
  32. column.Item().Text(Placeholders.Paragraph()).Justify();
  33. column.Item().AspectRatio(21 / 9f).Image(Placeholders.Image);
  34. }
  35. });
  36. });
  37. });
  38. })
  39. .GenerateImages(x => "multicolumn-example.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.High, RasterDpi = 144 });
  40. }
  41. [Test]
  42. public void SpacerExample()
  43. {
  44. Document
  45. .Create(document =>
  46. {
  47. document.Page(page =>
  48. {
  49. page.MinSize(new PageSize(450, 0));
  50. page.MaxSize(new PageSize(450, 550));
  51. page.DefaultTextStyle(x => x.FontSize(12));
  52. page.Margin(25);
  53. page.Content()
  54. .MultiColumn(multiColumn =>
  55. {
  56. multiColumn.Columns(2);
  57. multiColumn.Spacing(50);
  58. multiColumn
  59. .Spacer()
  60. .AlignCenter()
  61. .LineVertical(2)
  62. .LineColor(Colors.Grey.Medium);
  63. multiColumn
  64. .Content()
  65. .Column(column =>
  66. {
  67. column.Spacing(15);
  68. foreach (var textId in Enumerable.Range(0, 5))
  69. column.Item().Text(Placeholders.Paragraph()).Justify();
  70. });
  71. });
  72. });
  73. })
  74. .GenerateImages(x => "multicolumn-spacer.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.High, RasterDpi = 144 });
  75. }
  76. [Test]
  77. public void BalanceHeightWithExample()
  78. {
  79. Document
  80. .Create(document =>
  81. {
  82. document.Page(page =>
  83. {
  84. page.MinSize(PageSizes.A4);
  85. page.DefaultTextStyle(x => x.FontSize(14));
  86. page.Margin(30);
  87. page.Content()
  88. .MultiColumn(multiColumn =>
  89. {
  90. multiColumn.Spacing(30);
  91. multiColumn.BalanceHeight();
  92. multiColumn
  93. .Content()
  94. .Column(column =>
  95. {
  96. column.Spacing(15);
  97. foreach (var textId in Enumerable.Range(0, 8))
  98. column.Item().Text(Placeholders.Paragraph()).Justify();
  99. });
  100. });
  101. });
  102. })
  103. .GenerateImages(x => "multicolumn-balance-height-with.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.High, RasterDpi = 144 });
  104. }
  105. }