Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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);
        }