'''' This code is part of Document Solutions for Imaging demos.'' Copyright (c) MESCIUS inc. All rights reserved.''ImportsSystemImportsSystem.IOImportsSystem.DrawingImportsSystem.Collections.GenericImportsSystem.LinqImportsSystem.NumericsImportsGrapeCity.Documents.DrawingImportsGrapeCity.Documents.TextImportsGrapeCity.Documents.ImagingImportsGrapeCity.Documents.Svg '' This sample shows how to measure and render the actual SVG content'' that sometimes is offset within the SVG viewport.'' In the left part of the page, we render such an SVG as it is supposed'' to be laid out within its viewport. A gray border is drawn around the viewport,'' and a magenta border is around the SVG content.'' In the right part of the page we locate just the content at a specific point'' in the final image, and draw a purple border around it.'''' This short sample shows how to measure and render an SVG image.'' The SVG art used in this sample is from freesvg.org.PublicClassRenderSvgContentPublicFunctionGenerateImage(ByVal pixelSize AsSize,ByVal dpi AsSingle,ByVal opaque AsBoolean,OptionalByVal sampleParams AsString() = Nothing) AsGcBitmap '' Load the SVG:Dim svgPath = Path.Combine("Resources", "SvgMisc", "Smiling-Girl-offset.svg")Using svg = GcSvgDocument.FromFile(svgPath) Dim bmp = NewGcBitmap(pixelSize.Width, pixelSize.Height, opaque, dpi, dpi)Using g = bmp.CreateGraphics(Color.White)Dim pt0 AsNewPointF(g.Resolution, g.Resolution) '' Render the SVG content as specified by the SVG layout within viewport:Dim rcViewport AsNewRectangleF(pt0, svg.GetIntrinsicSize(SvgLengthUnits.Pixels))'' Measure the content size/location relative to 'pt':Dim rcContent0 = g.MeasureSvg(svg, pt0)'' Draw the SVG and viewport and content bounds: g.DrawSvg(svg, pt0) g.DrawRectangle(rcViewport, Color.DarkGray) g.DrawRectangle(rcContent0, Color.Magenta) '' In the left part of the bitmap, render just the SVG content'' aligning its top left corner to a specific point on the bitmap'' (center of page horizontally, 1" from the top):Dim pt1 AsNewPointF(pixelSize.Width / 2.0F, g.Resolution)'' An alternative to GcGraphics.MeasureSvg() is GcSvgDocument.Measure(),'' here we use it for illustration but these methods are calculations heavy,'' so in a real app we would re-use the results from GcGraphics.MeasureSvg() above:Dim rcContent1 = svg.Measure(PointF.Empty, dpi) g.DrawSvg(svg, NewPointF(pt1.X - rcContent1.X, pt1.Y - rcContent1.Y))'' Add a border: g.DrawRectangle(NewRectangleF(pt1, rcContent1.Size), Color.Purple)EndUsing '' Done:Return bmpEndUsingEndFunctionEndClass