Browse Source

SVG integration example

Marcin Ziąbek 2 years ago
parent
commit
c5cc80d7b0

+ 1 - 1
Source/QuestPDF.Examples/QuestPDF.Examples.csproj

@@ -13,7 +13,7 @@
         <PackageReference Include="NUnit3TestAdapter" Version="4.3.1" />
         <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
         <PackageReference Include="SkiaSharp" Version="2.88.3" />
-        <PackageReference Include="Svg.Skia" Version="0.5.18" />
+        <PackageReference Include="Svg.Skia" Version="1.0.0.2" />
     </ItemGroup>
 
     <ItemGroup>

+ 21 - 11
Source/QuestPDF.Examples/SvgImageExample.cs

@@ -11,26 +11,36 @@ namespace QuestPDF.Examples
     public class SvgImageExample
     {
         [Test]
-        public void BorderRadius()
+        public void ImageSVG()
         {
+            using var svg = new SKSvg();
+            svg.Load("pdf-icon.svg");
+            
             RenderingTest
                 .Create()
-                .PageSize(175, 100)
-                .ProduceImages()
+                .PageSize(300, 200)
+                .ProducePdf()
                 .ShowResults()
                 .Render(container =>
                 {
                     container
-                        .Background(Colors.Grey.Lighten2)
                         .Padding(25)
-                        .Canvas((canvas, space) =>
-                        {
-                            using var svg = new SKSvg();
-                            svg.Load("pdf-icon.svg");
-                            
-                            canvas.DrawPicture(svg.Picture);
-                        });
+                        .Svg(svg);
                 });
         }
     }
+    
+    public static class SvgExtensions
+    {
+        public static void Svg(this IContainer container, SKSvg svg)
+        {
+            container
+                .AlignCenter()
+                .AlignMiddle()
+                .ScaleToFit()
+                .Width(svg.Picture.CullRect.Width)
+                .Height(svg.Picture.CullRect.Height)
+                .Canvas((canvas, space) => canvas.DrawPicture(svg.Picture));
+        }
+    }
 }