2
0

SvgImageExample.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using NUnit.Framework;
  2. using QuestPDF.Examples.Engine;
  3. using QuestPDF.Fluent;
  4. using QuestPDF.Infrastructure;
  5. using Svg.Skia;
  6. namespace QuestPDF.Examples
  7. {
  8. public class SvgImageExample
  9. {
  10. [Test]
  11. public void ImageSVG()
  12. {
  13. using var svg = new SKSvg();
  14. svg.Load("pdf-icon.svg");
  15. RenderingTest
  16. .Create()
  17. .PageSize(300, 200)
  18. .ProducePdf()
  19. .ShowResults()
  20. .Render(container =>
  21. {
  22. container
  23. .Padding(25)
  24. .Svg(svg);
  25. });
  26. }
  27. }
  28. public static class SvgExtensions
  29. {
  30. public static void Svg(this IContainer container, SKSvg svg)
  31. {
  32. container
  33. .AlignCenter()
  34. .AlignMiddle()
  35. .ScaleToFit()
  36. .Width(svg.Picture.CullRect.Width)
  37. .Height(svg.Picture.CullRect.Height)
  38. .Canvas((canvas, space) => canvas.DrawPicture(svg.Picture));
  39. }
  40. }
  41. }