C#代码绘制SVG图形简单⽰例
⽂中使⽤的Svg库,Svg 3.1.1
安装:Install-Package Svg -Version 3.1.1
⽬录
简单⽰例
⼀、Text⽂字
1.1、Text⽔平⽅向
SvgDocument svgDocument = new SvgDocument();
Svg.SvgText text = new Svg.SvgText();
text.Text = "Depth (mbsf)";
text.FontSize = 12;
svg图形
text.X.Add(cd_Start_X);
text.Y.Add(cd_Start_Y + (cd_y_len / 2) + 10 );
svgDocument.Children.Add(topLine);
1.2、Text(垂直⽅向),其中,SbgRotate 90则代表旋转的⾓度,可以是-90、45等值。SvgTranslate中第⼀个值就是X的值,第⼆个
值就是Y的值。
SvgDocument svgDocument = new SvgDocument();
Svg.SvgText text = new Svg.SvgText();
text.Text = "Depth (mbsf)";
text.FontSize = 12;
//当需要垂直⽂字时,使⽤下⾯的代码,SvgTranslate中第⼀个值就是X的值,第⼆个值就是Y的值。
text.Transforms = new Svg.Transforms.SvgTransformCollection();
text.Transforms.Add(new Svg.Transforms.SvgTranslate(cd_Start_X, cd_Start_Y + (cd_y_len / 2) + 100));
text.Transforms.Add(new Svg.Transforms.SvgRotate(90));
//将⽂本对象放进⽂档中
svgDocument.Children.Add(text);
最终显⽰效果
其他实例:最终⽣成的svg⽂件:
<svg width="1000" height="1000" xmlns="/2000/svg" xmlns:xlink="
g/1999/xlink" xmlns:xml="/XML/1998/name  <text transform="translate(50, 240) rotate(-90, 0, 0)" id="⽂本20201231 133305" font-family="Arial" font-size="30" font="Arial">test -90度</text>
<text transform="translate(100, 240) rotate(90, 0, 0)" id="⽂本20201231 133305" font-family="Arial" font-size="30" font="Arial">test 90度</text>
<text transform="translate(150, 240) rotate(45, 0, 0)" id="⽂本20201231 133305" font-family="Arial" font-size="30" font="Arial">test 45度</text>
<text transform="translate(200, 240) rotate(-45, 0, 0)" id="⽂本20201231 133305" font-family="Arial" font-size="30" font="Arial">test 45度</text>
</svg>
效果如下:
⼆、Line直线
Svg.SvgLine topLine = new SvgLine();
topLine.StartX = line_Start_X;
topLine.StartY = cd_Start_Y;
topLine.EndX = line_Start_X;
topLine.EndY = cd_Start_Y + cd_y_len;
topLine.StrokeWidth = 1;
topLine.Stroke = new SvgColourServer(System.Drawing.Color.Black);
svgDocument.Children.Add(topLine);
三、Circle圆
SvgCircle circle = new SvgCircle();
circle.Content = depth.ToString();
circle.CenterX = line_Start_X + cd_x_space * count;
circle.CenterY = decimal.ToSingle(cd_Start_Y + (cd_one * Math.Abs(depth - d_minDep)));  circle.Stroke = new SvgColourServer(dotColor);
circle.Radius = settings.DotSize;
svgDocument.Children.Add(circle);
四、保存
string path = @"D:\yangjiao\justtest.svg";
svgDocument.Write(path);//保存
return path;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。