From 5229e5461a55b05bb4bde56d028d8049da0bcebf Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 29 Apr 2014 09:41:04 -0300 Subject: [PATCH] Draft: support for multiline dim texts in svg --- src/Mod/Draft/Draft.py | 68 ++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index f61c388453b2..ef7ebbecd341 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1715,11 +1715,19 @@ def getArrow(arrowtype,point,arrowsize,color,linewidth,angle=0): 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 = '' + try: + svg += text[i] + except: + svg += text[i].decode("utf8") + svg += '\n' svg += '\n' + print svg return svg @@ -1850,35 +1871,12 @@ def getText(color,fontsize,fontname,angle,base,text): elif getType(obj) == "Annotation": "returns an svg representation of a document annotation" - p = getProj(obj.Position) - 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"