Skip to content

SVG throws an error 'Stack empty.' if x="50%" #460

Open
@jojje888

Description

@jojje888

If the x attribute of a text element uses a %-value, the error 'Stack empty' is thrown.
This works in the common browsers.

Example svg
<svg width="250" height="40" viewBox="0 0 250 40" xmlns="http://www.w3.org/2000/svg"> <rect x="0" y="0" width="100%" height="100%" style="fill: none; stroke: black; stroke-width: 0.25;" /> <text x="50%" y="25" font-size="10" font-family="Verdana, Helvetica, sans-serif" text-anchor="middle"> <tspan id="patient-age">x</tspan> <tspan> year old </tspan> <tspan id="patient-gender">(gender)</tspan> </text> </svg>

Stack trace
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) at System.Collections.Generic.Stack1.Peek()
at Svg.SvgUnit.ToDeviceValue(ISvgRenderer renderer, UnitRenderingType renderType, SvgElement owner) in C:\Dev\vvvv\SVG\Source\DataTypes\SvgUnit.cs:line 144
at Svg.SvgTextBase.TextDrawingState.<>c__DisplayClass51_0.b__0(SvgUnit p) in C:\Dev\vvvv\SVG\Source\Text\SvgTextBase.cs:line 931
at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection) at Svg.SvgTextBase.TextDrawingState.GetValues(Int32 maxCount, Func2 listGetter, UnitRenderingType renderingType) in C:\Dev\vvvv\SVG\Source\Text\SvgTextBase.cs:line 931
at Svg.SvgTextBase.TextDrawingState.DrawString(String value) in C:\Dev\vvvv\SVG\Source\Text\SvgTextBase.cs:line 599
at Svg.SvgTextBase.SetPath(TextDrawingState state, Boolean doMeasurements) in C:\Dev\vvvv\SVG\Source\Text\SvgTextBase.cs:line 343
at Svg.SvgTextBase.Path(ISvgRenderer renderer) in C:\Dev\vvvv\SVG\Source\Text\SvgTextBase.cs:line 305
at Svg.SvgTextBase.get_Bounds() in C:\Dev\vvvv\SVG\Source\Text\SvgTextBase.cs:line 214
at Svg.SvgFragment.get_Bounds() in C:\Dev\vvvv\SVG\Source\Document Structure\SvgFragment.cs:line 228
at Svg.SvgFragment.GetDimensions() in C:\Dev\vvvv\SVG\Source\Document Structure\SvgFragment.cs:line 270
at Svg.SvgFragment.Render(ISvgRenderer renderer) in C:\Dev\vvvv\SVG\Source\Document Structure\SvgFragment.cs:line 175
at Svg.SvgElement.RenderChildren(ISvgRenderer renderer) in C:\Dev\vvvv\SVG\Source\SvgElement.cs:line 800
at Svg.SvgElement.Render(ISvgRenderer renderer) in C:\Dev\vvvv\SVG\Source\SvgElement.cs:line 791
at Svg.SvgFragment.Render(ISvgRenderer renderer) in C:\Dev\vvvv\SVG\Source\Document Structure\SvgFragment.cs:line 188
at Svg.SvgDocument.Draw(Bitmap bitmap) in C:\Dev\vvvv\SVG\Source\SvgDocument.cs:line 526`

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions