diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py
index f61c38845..ef7ebbecd 100644
--- a/src/Mod/Draft/Draft.py
+++ b/src/Mod/Draft/Draft.py
@@ -1715,11 +1715,19 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct
print "getSVG: arrow type not implemented"
return svg
- def getText(color,fontsize,fontname,angle,base,text):
+ def getText(color,fontsize,fontname,angle,base,text,linespacing=0.5,align="center"):
+ if not isinstance(text,list):
+ text = text.split("\n")
+ if align.lower() == "center":
+ anchor = "middle"
+ elif align.lower() == "left":
+ anchor = "start"
+ else:
+ anchor = "end"
svg = '\n'
- try:
- svg += text
- except:
- svg += text.decode("utf8")
+ if len(text) == 1:
+ try:
+ svg += text[0]
+ except:
+ svg += text[0].decode("utf8")
+ else:
+ for i in range(len(text)):
+ if i == 0:
+ svg += ''
+ else:
+ svg += ''
+ try:
+ svg += text[i]
+ except:
+ svg += text[i].decode("utf8")
+ svg += '\n'
svg += '\n'
+ print svg
return svg
@@ -1850,35 +1871,12 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct
elif getType(obj) == "Annotation":
"returns an svg representation of a document annotation"
- p = getProj(obj.Position)
- svg = '\n'
- for i in range(len(obj.LabelText)):
- if i == 0:
- svg += ''
- else:
- svg += ''
- svg += obj.LabelText[i]+'\n'
- svg += '\n'
- #print svg
+ n = obj.ViewObject.FontName
+ a = obj.ViewObject.Rotation.getValueAs("rad")
+ t = obj.LabelText
+ l = obj.ViewObject.LineSpacing/2
+ j = obj.ViewObject.Justification
+ svg += getText(stroke,fontsize,n,a,getProj(obj.Position),t,l,j)
elif getType(obj) == "Axis":
"returns the SVG representation of an Arch Axis system"