ShowOnceExamples.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using QuestPDF.Fluent;
  2. using QuestPDF.Helpers;
  3. using QuestPDF.Infrastructure;
  4. namespace QuestPDF.DocumentationExamples;
  5. public class ShowOnceExamples
  6. {
  7. [Test]
  8. public void Example()
  9. {
  10. Document
  11. .Create(document =>
  12. {
  13. document.Page(page =>
  14. {
  15. page.Size(350, 500);
  16. page.DefaultTextStyle(x => x.FontSize(20));
  17. page.Margin(25);
  18. page.Content()
  19. .Decoration(decoration =>
  20. {
  21. decoration.Before().Column(column =>
  22. {
  23. column.Item()
  24. .ShowOnce()
  25. .Row(row =>
  26. {
  27. row.ConstantItem(80).AspectRatio(4 / 3f).Placeholder();
  28. row.ConstantItem(10);
  29. row.RelativeItem()
  30. .AlignMiddle()
  31. .Column(innerColumn =>
  32. {
  33. innerColumn.Item().Text("Invoice #1234").FontSize(24).Bold();
  34. innerColumn.Item().Text($"Generated on {DateTime.Now:d}").FontSize(16).Light();
  35. });
  36. });
  37. column.Item()
  38. .SkipOnce()
  39. .Text("Invoice #1234").FontSize(24).Bold();
  40. });
  41. // generate dummy content
  42. decoration.Content()
  43. .PaddingTop(15)
  44. .ExtendHorizontal()
  45. .Column(column =>
  46. {
  47. column.Spacing(10);
  48. foreach (var i in Enumerable.Range(1, 15))
  49. {
  50. column.Item()
  51. .Height(30)
  52. .Background(Colors.Grey.Lighten3)
  53. .AlignCenter()
  54. .AlignMiddle()
  55. .Text($"{i}");
  56. }
  57. });
  58. });
  59. });
  60. })
  61. .GenerateImages(x => $"show-once-{x}.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.Best, RasterDpi = 144 });
  62. }
  63. }