예제 #1
0
        public void SetFillStyle(SvgGraphicsElement graphicsElement)
        {
            var style = graphicsElement?.Style;

            _fillEvenOdd = style?.FillRule == SvgFillRule.EvenOdd;
            _fillColor   = graphicsElement != null && _pageViewport != null
                ? SvgPaintServerToDynamicPdfColorConverter.ConvertToColor(graphicsElement.CreateFillPaintServer(), _pageViewport, _pageHeight, graphicsElement, _spotColorOverride)
                : null;
        }
예제 #2
0
        public void SetStrokeStyle(SvgGraphicsElement graphicsElement)
        {
            var style = graphicsElement?.Style;

            _strokeColor = graphicsElement != null && _pageViewport != null
                ? SvgPaintServerToDynamicPdfColorConverter.ConvertToColor(graphicsElement.CreateStrokePaintServer(), _pageViewport, _pageHeight, graphicsElement, _spotColorOverride)
                : null;

            _strokeWidth = _strokeColor != null ? graphicsElement?.StrokeWidth ?? 0 : 0;
            _lineJoin    = style?.StrokeLineJoin.ConvertToDynamicPdf() ?? LineJoin.Miter;
            _miterLimit  = style?.StrokeMiterLimit ?? 1f;
            _lineCap     = style?.StrokeLineCap.ConvertToDynamicPdf() ?? LineCap.Butt;
            _strokeStyle = LineStyle.Solid;

            var dashArray = style?.StrokeDashArray.Value;

            if (dashArray?.Length > 0)
            {
                var dashValues = dashArray.Select(i => i.Value).ToArray();
                _strokeStyle = new LineStyle(dashValues, style.StrokeDashOffset.Value.Value);
            }
        }