ShowOnceExample.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using System;
  2. using System.Linq;
  3. using NUnit.Framework;
  4. using QuestPDF.Examples.Engine;
  5. using QuestPDF.Fluent;
  6. using QuestPDF.Helpers;
  7. namespace QuestPDF.Examples
  8. {
  9. public class ShowOnceExample
  10. {
  11. [Test]
  12. public void ShowOnce()
  13. {
  14. RenderingTest
  15. .Create()
  16. .ProduceImages()
  17. .ShowResults()
  18. .RenderDocument(container =>
  19. {
  20. container.Page(page =>
  21. {
  22. page.Margin(20);
  23. page.Size(PageSizes.A7.Landscape());
  24. page.PageColor(Colors.White);
  25. page.Header().Text("With show once").SemiBold();
  26. page.Content().PaddingVertical(5).Row(row =>
  27. {
  28. row.RelativeItem()
  29. .Background(Colors.Grey.Lighten2)
  30. .Border(1)
  31. .Padding(5)
  32. .ShowOnce()
  33. .Text(Placeholders.Label());
  34. row.RelativeItem(2)
  35. .Border(1)
  36. .Padding(5)
  37. .Text(Placeholders.Paragraph());
  38. });
  39. page.Footer().Text(text =>
  40. {
  41. text.Span("Page ");
  42. text.CurrentPageNumber();
  43. text.Span(" out of ");
  44. text.TotalPages();
  45. });
  46. });
  47. });
  48. }
  49. [Test]
  50. public void ShowIf()
  51. {
  52. RenderingTest
  53. .Create()
  54. .ProducePdf()
  55. .ShowResults()
  56. .RenderDocument(container =>
  57. {
  58. container.Page(page =>
  59. {
  60. page.Margin(20);
  61. page.Size(PageSizes.A4);
  62. page.PageColor(Colors.White);
  63. page.DefaultTextStyle(x => x.FontSize(20));
  64. page.Header().Text("Show when example").SemiBold();
  65. page.Content().Column(column =>
  66. {
  67. column.Spacing(10);
  68. foreach (var s in Enumerable.Range(0, 10))
  69. {
  70. foreach (var i in Enumerable.Range(0, Random.Shared.Next(10, 50)))
  71. {
  72. column
  73. .Item()
  74. .Height(40)
  75. .Width(150)
  76. .Background(Colors.Grey.Lighten3)
  77. .Text($"{s} - {i}");
  78. }
  79. column.Item().PageBreak();
  80. column.Item().ShowIf(x => x.PageNumber % 2 == 0).PageBreak();
  81. }
  82. });
  83. page.Footer().Text(text =>
  84. {
  85. text.Span("Page ");
  86. text.CurrentPageNumber();
  87. text.Span(" out of ");
  88. text.TotalPages();
  89. });
  90. });
  91. });
  92. }
  93. }
  94. }