LoremPicsumExample.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. .ProducePdf()
  34. .ShowResults()
  35. .Render(container =>
  36. {
  37. container
  38. .Background("#FFF")
  39. .Padding(25)
  40. .Column(column =>
  41. {
  42. column.Spacing(10);
  43. column
  44. .Item()
  45. .Component(new LoremPicsum(true));
  46. column
  47. .Item()
  48. .AlignRight()
  49. .Text("From Lorem Picsum");
  50. });
  51. });
  52. }
  53. }
  54. }