protected SvgDocument CreateDocument() { var document = new SvgDocument { FontFamily = "Arial", FontSize = TextHeight }; var styles = GetScriptResource("svg.css"); if (!string.IsNullOrEmpty(styles)) { var styleElement = new NonSvgElement("style"); styleElement.Content = "\n" + styles; document.Children.Add(styleElement); } var script = GetScriptResource("svg.js"); if (!string.IsNullOrEmpty(script)) { document.CustomAttributes.Add("onload", "init(evt)"); var scriptElement = new NonSvgElement("script"); scriptElement.CustomAttributes.Add("type", "text/ecmascript"); scriptElement.Content = "\n" + script; document.Children.Add(scriptElement); } return(document); }
public SvgDocument ProduceSvg(DrawingElement rootElement) { if (rootElement == null) { return(new SvgDocument { FontFamily = "Arial", FontSize = SvgTextHeight }); } rootElement.SortDescendentsByZOrder(); rootElement.Arrange(); rootElement.UpdateConnectedElements(); rootElement.ArrangeMargins(); var drawing = rootElement.Draw(); var svgDocument = new SvgDocument { FontFamily = "Arial", FontSize = SvgTextHeight }; var styles = GetTextResource("drawing.css"); if (!string.IsNullOrEmpty(styles)) { var styleElement = new NonSvgElement("style") { Content = "\n" + styles }; svgDocument.Children.Add(styleElement); } var script = GetTextResource("drawing.js"); if (!string.IsNullOrEmpty(script)) { svgDocument.CustomAttributes.Add("onload", "init(evt)"); var scriptElement = new NonSvgElement("script"); scriptElement.CustomAttributes.Add("type", "text/ecmascript"); scriptElement.Content = "\n" + script; svgDocument.Children.Add(scriptElement); } svgDocument.Children.Add(drawing); svgDocument.Width = rootElement.Left + rootElement.Width; svgDocument.Height = rootElement.Top + rootElement.Height; svgDocument.ViewBox = new SvgViewBox(0, 0, svgDocument.Width, svgDocument.Height); return(svgDocument); }
/// <summary> /// Constructs an SVG element containing this drawing element /// and all of its descendents /// </summary> public virtual SvgElement Draw() { Container = GetContainer(); var result = Container; if (Container != null) { if (!string.IsNullOrEmpty(LinkUrl)) { var anchor = new NonSvgElement("a"); anchor.CustomAttributes.Add("href", LinkUrl); anchor.Children.Add(Container); result = anchor; } DrawChildren(Container.Children); } return(result); }