LoremPicsumExample.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. public void LoremPicsum()
  31. {
  32. RenderingTest
  33. .Create()
  34. .PageSize(350, 280)
  35. .ProducePdf()
  36. .ShowResults()
  37. .Render(container =>
  38. {
  39. container
  40. .Background(Colors.White)
  41. .Padding(25)
  42. .Column(column =>
  43. {
  44. column.Spacing(10);
  45. column
  46. .Item()
  47. .Component(new LoremPicsum(true));
  48. column
  49. .Item()
  50. .AlignRight()
  51. .Text("From Lorem Picsum");
  52. });
  53. });
  54. }
  55. }
  56. }