LoremPicsumExample.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System.Net;
  2. using NUnit.Framework;
  3. using QuestPDF.Examples.Engine;
  4. using QuestPDF.Fluent;
  5. using QuestPDF.Helpers;
  6. using QuestPDF.Infrastructure;
  7. namespace QuestPDF.Examples
  8. {
  9. public class LoremPicsum : IComponent
  10. {
  11. public bool Greyscale { get; }
  12. public LoremPicsum(bool greyscale)
  13. {
  14. Greyscale = greyscale;
  15. }
  16. public void Compose(IContainer container)
  17. {
  18. var url = "https://picsum.photos/300/200";
  19. if (Greyscale)
  20. url += "?grayscale";
  21. using var client = new WebClient();
  22. client.Headers.Add("user-agent", "QuestPDF/1.0 Unit Testing");
  23. var response = client.DownloadData(url);
  24. container.Image(response);
  25. }
  26. }
  27. public class LoremPicsumExample
  28. {
  29. [Test]
  30. [Ignore("Unstable test in the CI/CD environment, makes HTTP calls.")]
  31. public void LoremPicsum()
  32. {
  33. RenderingTest
  34. .Create()
  35. .PageSize(350, 280)
  36. .ProducePdf()
  37. .ShowResults()
  38. .Render(container =>
  39. {
  40. container
  41. .Background(Colors.White)
  42. .Padding(25)
  43. .Column(column =>
  44. {
  45. column.Spacing(10);
  46. column
  47. .Item()
  48. .Component(new LoremPicsum(true));
  49. column
  50. .Item()
  51. .AlignRight()
  52. .Text("From Lorem Picsum");
  53. });
  54. });
  55. }
  56. }
  57. }