LoremPicsumExample.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. client.Headers.Add("user-agent", "QuestPDF/1.0 Unit Testing");
  22. var response = client.DownloadData(url);
  23. container.Image(response);
  24. }
  25. }
  26. public class LoremPicsumExample
  27. {
  28. [Test]
  29. public void LoremPicsum()
  30. {
  31. RenderingTest
  32. .Create()
  33. .PageSize(350, 280)
  34. .ProducePdf()
  35. .ShowResults()
  36. .Render(container =>
  37. {
  38. container
  39. .Background("#FFF")
  40. .Padding(25)
  41. .Column(column =>
  42. {
  43. column.Spacing(10);
  44. column
  45. .Item()
  46. .Component(new LoremPicsum(true));
  47. column
  48. .Item()
  49. .AlignRight()
  50. .Text("From Lorem Picsum");
  51. });
  52. });
  53. }
  54. }
  55. }