예제 #1
0
        public override IEnumerable <SvgAttribute> GetAttributes()
        {
            var baseAttributes = base.GetAttributes();

            if (baseAttributes != null)
            {
                foreach (var attr in baseAttributes)
                {
                    // Skip rect attributes
                    if (attr.NamespaceUri == XmlNamespace.Svg)
                    {
                        if (attr.LocalName == "path" || attr.LocalName == "stroke-width" || attr.LocalName == "stroke" || attr.LocalName == "stroke-opacity" ||
                            attr.LocalName == "fill" || attr.LocalName == "fill-opacity")
                        {
                            continue;
                        }
                    }

                    yield return(attr);
                }
            }

            yield return(new SvgAttribute("showMaskedContent", "true", XmlNamespace.AurigmaVectorObjects,
                                          () => ShowMaskedContent.ToString(),
                                          v => ShowMaskedContent = SvgAttribute.ParseBooleanAttribute(v, true)
                                          ));

            yield return(new SvgAttribute("isStub", "false", XmlNamespace.AurigmaVectorObjects,
                                          () => IsStubContent.ToString(),
                                          v => IsStubContent = SvgAttribute.ParseBooleanAttribute(v, true)
                                          ));
        }
예제 #2
0
        public override IEnumerable <SvgAttribute> GetAttributes()
        {
            var baseAttributes = base.GetAttributes();

            if (baseAttributes != null)
            {
                foreach (var attr in baseAttributes)
                {
                    yield return(attr);
                }
            }

            var ci = CultureInfo.InvariantCulture;

            yield return(new SvgAttribute("baselinelocation", null,
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => BaselineLocation.X.ToString(ci) + " " + BaselineLocation.Y.ToString(ci),
                                          v => BaselineLocation = new PointF(SvgAttribute.ParseFloatArray(v)[0], SvgAttribute.ParseFloatArray(v)[1])
                                          ));

            yield return(new SvgAttribute("is-vertical", bool.FalseString,
                                          () => IsVertical.ToString(),
                                          v => IsVertical = SvgAttribute.ParseBooleanAttribute(v)
                                          ));
        }
예제 #3
0
        public override IEnumerable <SvgAttribute> GetAttributes()
        {
            var baseAttributes = base.GetAttributes();

            if (baseAttributes != null)
            {
                foreach (var attr in baseAttributes)
                {
                    yield return(attr);
                }
            }

            var ci = CultureInfo.InvariantCulture;

            yield return(new SvgAttribute("fit-to-path", null,
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => FitToPath.ToString(ci),
                                          v => FitToPath = SvgAttribute.ParseBooleanAttribute(v)
                                          ));

            yield return(new SvgAttribute("stretch", null,
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => Stretch.ToString(ci),
                                          v => Stretch = SvgAttribute.ParseBooleanAttribute(v)
                                          ));

            yield return(new SvgAttribute("original-font-size", "0",
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => OriginalFontSize.ToString(ci),
                                          v => OriginalFontSize = SvgAttribute.ParseFloatAttribute(v)
                                          ));

            yield return(new SvgAttribute("fit-to-path-step", "1",
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => FitToPathStep.ToString(ci),
                                          v => FitToPathStep = SvgAttribute.ParseFloatAttribute(v)
                                          ));

            yield return(new SvgAttribute("path-start", "0",
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => PathStart.ToString(ci),
                                          v => PathStart = SvgAttribute.ParseFloatAttribute(v)
                                          ));

            yield return(new SvgAttribute("path-end", "1",
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => PathEnd.ToString(ci),
                                          v => PathEnd = SvgAttribute.ParseFloatAttribute(v)
                                          ));
        }
예제 #4
0
        public override IEnumerable <SvgAttribute> GetAttributes()
        {
            var baseAttributes = base.GetAttributes();

            if (baseAttributes != null)
            {
                foreach (var attr in baseAttributes)
                {
                    yield return(attr);
                }
            }

            yield return(new SvgAttribute("is-vertical", bool.FalseString,
                                          () => IsVertical.ToString(),
                                          v => IsVertical = SvgAttribute.ParseBooleanAttribute(v)
                                          ));
        }
예제 #5
0
        private void ReadBaseRectangleVObjectAttributes(BaseRectangleVObject vObject, SvgElement svg)
        {
            ReadVObjectAttributes(vObject, svg);

            foreach (var attr in svg.CustomAttributes.Where(attr => attr.NamespaceUri == XmlNamespace.AurigmaVectorObjects))
            {
                switch (attr.LocalName)
                {
                case "text-wrapping-mode":
                    vObject.TextWrappingMode = SvgAttribute.ParseEnumAttribute(attr.GetValue(),
                                                                               TextWrappingMode.None);
                    break;

                case "opacity":
                    vObject.Opacity = SvgAttribute.ParseFloatAttribute(attr.GetValue(), 1.0f);
                    break;
                }
            }
        }
예제 #6
0
        public override IEnumerable <SvgAttribute> GetAttributes()
        {
            var baseAttributes = base.GetAttributes();

            if (baseAttributes != null)
            {
                foreach (var attr in baseAttributes)
                {
                    yield return(attr);
                }
            }

            yield return(new SvgAttribute("wrapping-rectanlges", null,
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => WrappingRectanglesJson,
                                          v => WrappingRectanglesJson = v
                                          ));

            yield return(new SvgAttribute("wrapping-margin", null,
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => WrappingMargin.ToString(CultureInfo.InvariantCulture),
                                          v => WrappingMargin = SvgAttribute.ParseFloatAttribute(v)
                                          ));

            yield return(new SvgAttribute("paragraph-settings", null,
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => ParagraphSettingsJson,
                                          v => ParagraphSettingsJson = v
                                          ));

            yield return(new SvgAttribute("vertical-alignment", TextVerticalAlignment.Top.ToString().ToLowerInvariant(),
                                          XmlNamespace.AurigmaVectorObjects,
                                          () => VerticalAlignment.ToString().ToLowerInvariant(),
                                          v => VerticalAlignment = SvgAttribute.ParseEnumAttribute <TextVerticalAlignment>(v)
                                          ));

            yield return(new SvgAttribute("is-vertical", bool.FalseString,
                                          () => IsVertical.ToString(),
                                          v => IsVertical = SvgAttribute.ParseBooleanAttribute(v)
                                          ));
        }
예제 #7
0
        public void ReadContent(XmlElement xmlElement, SvgReader svgReader)
        {
            Transform = SvgAttribute.ParseTransformAttribute(xmlElement.GetAttribute("transform"));

            _rect = null;
            foreach (var node in xmlElement.ChildNodes)
            {
                var childElement = node as XmlElement;
                if (childElement != null)
                {
                    var svgNode = svgReader.CreateSvgNodeFromXml(childElement);
                    svgReader.Read(svgNode, childElement);
                    if (svgNode is SvgRect)
                    {
                        _rect = svgNode as SvgRect;
                    }
                }

                if (_rect != null)
                {
                    break;
                }
            }

            if (_rect != null)
            {
                X           = _rect.X + _rect.StrokeWidth / 2;
                Y           = _rect.Y + _rect.StrokeWidth / 2;
                Width       = _rect.Width - _rect.StrokeWidth;
                Height      = _rect.Height - _rect.StrokeWidth;
                Fill        = _rect.Fill;
                Stroke      = _rect.Stroke;
                StrokeWidth = _rect.StrokeWidth;
            }
            else
            {
                throw new SvgParseException(Resources.Exceptions.CanNotParseSvgVoContent);
            }
        }
예제 #8
0
        public override IEnumerable <SvgAttribute> GetAttributes()
        {
            var baseAttributes = base.GetAttributes();

            if (baseAttributes != null)
            {
                foreach (var attr in baseAttributes)
                {
                    // Skip path attributes
                    if (attr.NamespaceUri == XmlNamespace.Svg)
                    {
                        if (attr.LocalName == "stroke-width" || attr.LocalName == "stroke" || attr.LocalName == "stroke-opacity" ||
                            attr.LocalName == "fill" || attr.LocalName == "fill-opacity")
                        {
                            continue;
                        }
                    }

                    yield return(attr);
                }
            }

            yield return(new SvgAttribute("x", "0", XmlNamespace.AurigmaVectorObjects,
                                          () => X.ToString(CultureInfo.InvariantCulture),
                                          v => X = SvgAttribute.ParseFloatAttribute(v)
                                          ));

            yield return(new SvgAttribute("y", "0", XmlNamespace.AurigmaVectorObjects,
                                          () => Y.ToString(CultureInfo.InvariantCulture),
                                          v => Y = SvgAttribute.ParseFloatAttribute(v)
                                          ));

            yield return(new SvgAttribute("cols", "0", XmlNamespace.AurigmaVectorObjects,
                                          () => Cols.ToString(CultureInfo.InvariantCulture),
                                          v => Cols = SvgAttribute.ParseIntAttribute(v)
                                          ));

            yield return(new SvgAttribute("rows", "0", XmlNamespace.AurigmaVectorObjects,
                                          () => Rows.ToString(CultureInfo.InvariantCulture),
                                          v => Rows = SvgAttribute.ParseIntAttribute(v)
                                          ));

            yield return(new SvgAttribute("step-x", "0", XmlNamespace.AurigmaVectorObjects,
                                          () => StepX.ToString(CultureInfo.InvariantCulture),
                                          v => StepX = SvgAttribute.ParseFloatAttribute(v)
                                          ));

            yield return(new SvgAttribute("step-y", "0", XmlNamespace.AurigmaVectorObjects,
                                          () => StepY.ToString(CultureInfo.InvariantCulture),
                                          v => StepY = SvgAttribute.ParseFloatAttribute(v)
                                          ));

            yield return(new SvgAttribute("stroke-fixed-width", "", XmlNamespace.AurigmaVectorObjects,
                                          () => FixedStrokeWidth.ToString(CultureInfo.InvariantCulture).ToLowerInvariant(),
                                          v => FixedStrokeWidth = v != "false"
                                          ));

            yield return(new SvgAttribute("vertical-line-color", "", XmlNamespace.AurigmaVectorObjects,
                                          () => _verticalLineColor,
                                          v => _verticalLineColor = v
                                          ));

            yield return(new SvgAttribute("horizontal-line-color", "", XmlNamespace.AurigmaVectorObjects,
                                          () => _horizontalLineColor,
                                          v => _horizontalLineColor = v
                                          ));
        }
예제 #9
0
        public override IEnumerable <SvgAttribute> GetAttributes()
        {
            var baseAttributes = base.GetAttributes();

            if (baseAttributes != null)
            {
                foreach (var attr in baseAttributes)
                {
                    yield return(attr);
                }
            }

            yield return
                (new SvgAttribute("alignment", TextAlignment.Left.ToString().ToLowerInvariant(), XmlNamespace.AurigmaVectorObjects,
                                  () => Alignment.ToString().ToLowerInvariant(),
                                  v => Alignment = SvgAttribute.ParseEnumAttribute <TextAlignment>(v)));

            yield return
                (new SvgAttribute("text-color", "", XmlNamespace.AurigmaVectorObjects,
                                  () => _textColor,
                                  v => _textColor = v));

            yield return
                (new SvgAttribute("font-postscript-name", "", XmlNamespace.AurigmaVectorObjects,
                                  () => _font.PostScriptName,
                                  v =>
            {
                if (_font == null)
                {
                    _font = new FontSettings();
                }
                _font.PostScriptName = v;
            }));

            yield return
                (new SvgAttribute("font-fauxbold", bool.FalseString, XmlNamespace.AurigmaVectorObjects,
                                  () => _font.FauxBold.ToString(CultureInfo.InvariantCulture),
                                  v =>
            {
                if (_font == null)
                {
                    _font = new FontSettings();
                }
                _font.FauxBold = SvgAttribute.ParseBooleanAttribute(v);
            }));

            yield return
                (new SvgAttribute("font-fauxitalic", bool.FalseString, XmlNamespace.AurigmaVectorObjects,
                                  () => _font.FauxItalic.ToString(CultureInfo.InvariantCulture),
                                  v =>
            {
                if (_font == null)
                {
                    _font = new FontSettings();
                }
                _font.FauxItalic = SvgAttribute.ParseBooleanAttribute(v);
            }));

            yield return
                (new SvgAttribute("tracking", "0",
                                  () => Tracking.ToString(CultureInfo.InvariantCulture),
                                  v => Tracking = SvgAttribute.ParseFloatAttribute(v)));

            yield return
                (new SvgAttribute("leading", "0",
                                  () => Leading.ToString(CultureInfo.InvariantCulture),
                                  v => Leading = SvgAttribute.ParseFloatAttribute(v)));

            yield return
                (new SvgAttribute("is-rich-text", bool.FalseString,
                                  () => IsRichText.ToString(),
                                  v => IsRichText = SvgAttribute.ParseBooleanAttribute(v)));

            yield return
                (new SvgAttribute("vertical-scale", "0",
                                  () => VerticalScale.ToString(CultureInfo.InvariantCulture),
                                  v => VerticalScale = SvgAttribute.ParseFloatAttribute(v)));

            yield return
                (new SvgAttribute("horizontal-scale", "0",
                                  () => HorizontalScale.ToString(CultureInfo.InvariantCulture),
                                  v => HorizontalScale = SvgAttribute.ParseFloatAttribute(v)));

            yield return
                (new SvgAttribute("italic", bool.FalseString,
                                  null,
                                  v => _oldItalic = SvgAttribute.ParseBooleanAttribute(v)));
        }