LoremPicsumExample.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System.Net;
  2. using NUnit.Framework;
  3. using QuestPDF.Examples.Engine;
  4. using QuestPDF.Fluent;
  5. using QuestPDF.Infrastructure;
  6. namespace QuestPDF.Examples
  7. {
  8. public class LoremPicsum : IComponent
  9. {
  10. public bool Greyscale { get; }
  11. public LoremPicsum(bool greyscale)
  12. {
  13. Greyscale = greyscale;
  14. }
  15. public void Compose(IContainer container)
  16. {
  17. var url = "https://picsum.photos/300/200";
  18. if(Greyscale)
  19. url += "?grayscale";
  20. using var client = new WebClient();
  21. var response = client.DownloadData(url);
  22. container.Image(response);
  23. }
  24. }
  25. public class LoremPicsumExample
  26. {
  27. [Test]
  28. public void LoremPicsum()
  29. {
  30. RenderingTest
  31. .Create()
  32. .PageSize(350, 280)
  33. .Render(container =>
  34. {
  35. container
  36. .Background("#FFF")
  37. .Padding(25)
  38. .Stack(column =>
  39. {
  40. column.Spacing(10);
  41. column
  42. .Item()
  43. .Component(new LoremPicsum(true));
  44. column
  45. .Item()
  46. .AlignRight()
  47. .Text("From Lorem Picsum");
  48. });
  49. });
  50. }
  51. }
  52. }