diff --git a/Source/Text/SvgTextBase.cs b/Source/Text/SvgTextBase.cs index 9467f53c7350f4c8f45c29de40fb0530b0b135b4..58ab6dd6ca955776d53ea087e1b62b8bedceb2c2 100644 --- a/Source/Text/SvgTextBase.cs +++ b/Source/Text/SvgTextBase.cs @@ -325,7 +325,7 @@ namespace Svg if (textNode == null) { - if (!string.IsNullOrEmpty(node.Content)) state.DrawString(PrepareText(node.Content)); + if (!string.IsNullOrEmpty(node.Content)) state.DrawString(PrepareText(node.Content)); } else { @@ -838,11 +838,13 @@ namespace Svg var xOffset = 0f; //_xAnchor - minX; switch (Element.TextAnchor) { - case SvgTextAnchor.Middle: - xOffset -= (maxX - minX) / 2; + case SvgTextAnchor.Middle: + if (_anchoredPaths.Count() == 1) xOffset -= this.TextBounds.Width / 2; + else xOffset -= (maxX - minX) / 2; break; case SvgTextAnchor.End: - xOffset -= (maxX - minX); + if (_anchoredPaths.Count() == 1) xOffset -= this.TextBounds.Width; + else xOffset -= (maxX - minX); break; } diff --git a/Tests/W3CTestSuite/png/__issue-385-01_Test_text-anchor-middle.PNG b/Tests/W3CTestSuite/png/__issue-385-01_Test_text-anchor-middle.PNG new file mode 100644 index 0000000000000000000000000000000000000000..34b6fb2b30bcad854aabc7e7455fabfd04782e26 Binary files /dev/null and b/Tests/W3CTestSuite/png/__issue-385-01_Test_text-anchor-middle.PNG differ diff --git a/Tests/W3CTestSuite/svg/__issue-385-01_Test_text-anchor-middle.svg b/Tests/W3CTestSuite/svg/__issue-385-01_Test_text-anchor-middle.svg new file mode 100644 index 0000000000000000000000000000000000000000..bfb92013285669f5951b982664fe2c02b96d17f3 --- /dev/null +++ b/Tests/W3CTestSuite/svg/__issue-385-01_Test_text-anchor-middle.svg @@ -0,0 +1,47 @@ + + + + + + + HH + 8888888 + + 080 + + HVH + + + + + + + + + + + + + + +