コード例 #1
0
ファイル: main.py プロジェクト: ccnmtl/graffle2svg
    def svg_addText(self,node,**opts):
        """Add an svg text element"""
        text_tag = self.svg_dom.createElement("text")
        text_tag.setAttribute("id",opts.get("id",""))
        text_tag.setAttribute("x",str(opts.get("x","0")))
        text_tag.setAttribute("y",str(opts.get("y","0")))
        text_tag.setAttribute("text-anchor","middle")
#        text_tag.setAttribute("dominant-baseline","mathematical")
        text_tag.setAttribute("style", self.svg_current_font)
        node.appendChild(text_tag)
        
        # TODO: lines need to be moved down by the correct size
        
        # Generator
        lines = extractRTFString(opts["rtftext"])
        font_info =  opts.get("fontinfo",None)
        if font_info is not None:
            font_height = int(font_info.get("Size"))
        else:
            font_height = 12
        i = 0
        for span in lines:
            self.svg_addLine(text_tag,text = span["string"], style = span["style"],\
                    y_offset = i, line_height =font_height, **opts)
            i+=1
コード例 #2
0
ファイル: main.py プロジェクト: jnavila/graffle2svg
    def addText(self,**opts):
        """Add an svg text element"""
        text_tag = self.svg_dom.createElement("text")
        text_tag.setAttribute("id",str(opts.get("id",""))+"_text")
        text_tag.setAttribute("x",str(opts.get("x","0")))
        text_tag.setAttribute("y",str(opts.get("y","0")))
#        text_tag.setAttribute("dominant-baseline","mathematical")
        text_tag.setAttribute("style", self.svg_current_font)
        self.svg_current_layer.appendChild(text_tag)
        
        
        # Generator
        lines = extractRTFString(opts["rtftext"])
        font_info =  opts.get("fontinfo",None)
        if font_info is not None:
            font_height = int(font_info.get("Size"))
        else:
            font_height = 12
        total_height = 0.0
        for span in lines:
            total_height += float(span["style"].get("font-size","%.1fpx"%font_height)[:-2])
        y_diff = float(opts.get("y", "12.0")) + opts.get("height",0)/2 -total_height/2
        line_id=opts["id"]
        linenb = 0
        for span in lines:
            y_diff+= float(span["style"].get("font-size","%.1fpx"%font_height)[:-2])
            linenb+=1
            opts["id"]=str(line_id)+"_line"+str(linenb)
            self.addLine(text_tag,text = span["string"], style = span["style"],\
                    y_pos=y_diff, line_height =font_height, **opts)
コード例 #3
0
ファイル: testRTF.py プロジェクト: rektide/graffle2svg
    def testfont(self):
        lines = extractRTFString(r"""{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
{\fonttbl\f0\fnil\fcharset0 Monaco;}
{\colortbl;\red255\green255\blue255;\red20\green20\blue20;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural

\f0\fs16 \cf2 \expnd0\expndtw0\kerning0
== LICENSE:\
\
(The MIT License)\
\
Copyright (c) 2007 Tom Preston-\
\
Permission is hereby granted, f\
ree of charge, to any person ob\
}""")
        self.assertEqual(len(list(lines)),8 )
コード例 #4
0
ファイル: main.py プロジェクト: axilleas/graffle2svg
 def svg_addText(self,node,**opts):
     """Add an svg text element"""
     text_tag = self.svg_dom.createElement("text")
     text_tag.setAttribute("id",opts.get("id",""))
     text_tag.setAttribute("x",str(opts.get("x","0")))
     text_tag.setAttribute("y",str(opts.get("y","0")))
     text_tag.setAttribute("style", ";".join( \
                             [str(self.style.scopeStyle()),self.svg_current_font]))
     node.appendChild(text_tag)
     
     # TODO: lines need to be moved down by the correct size
     
     # Generator
     lines = extractRTFString(opts["rtftext"])
     
     i = 0
     for span in lines:
         self.svg_addLine(text_tag,text = span["string"], style = span["style"],\
                 y_offset = i, line_height = 12, **opts)
         i+=1
コード例 #5
0
ファイル: main.py プロジェクト: rektide/graffle2svg
    def svg_addText(self, node, **opts):
        """Add an svg text element"""
        text_tag = self.svg_dom.createElement("text")
        text_tag.setAttribute("id", opts.get("id", ""))
        text_tag.setAttribute("x", str(opts.get("x", "0")))
        text_tag.setAttribute("y", str(opts.get("y", "0")))
        text_tag.setAttribute("style", ";".join( \
                                [str(self.style.scopeStyle()),self.svg_current_font]))
        node.appendChild(text_tag)

        # TODO: lines need to be moved down by the correct size

        # Generator
        lines = extractRTFString(opts["rtftext"])

        i = 0
        for span in lines:
            self.svg_addLine(text_tag,text = span["string"], style = span["style"],\
                    y_offset = i, line_height = 12, **opts)
            i += 1
コード例 #6
0
ファイル: testRTF.py プロジェクト: jnavila/graffle2svg
 def testSimple(self):
     '''assert extractRTFString(r"{\rtf1\ansi testing}")["string"]=="testing"'''
     lines = extractRTFString(r"{\rtf1\ansi testing}")
     self.assertEqual(len(lines), 1)
     self.assertEqual(lines[0]["string"],"testing")
コード例 #7
0
ファイル: testRTF.py プロジェクト: jnavila/graffle2svg
def testcomplexunicode(self):
        lines = extractRTFString(r""""{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
\fs24 \uc0\u916
\fs10 2}""")
        self.assertEqual(lines[0]['string'],u'\u03942')
コード例 #8
0
ファイル: testRTF.py プロジェクト: jnavila/graffle2svg
 def testfontweight(self):
     ''' test that font size is correctly applied on spans'''
     lines = extractRTFString(r"{\rtf\ansi\fs10\b testing}")
     self.assertEqual(len(lines), 1)
     self.assertEqual(lines[0]['style'],  {"font-size":"5.0px","font-weight":"bold"})
コード例 #9
0
ファイル: testRTF.py プロジェクト: rektide/graffle2svg
 def testSimple(self):
     lines = list(extractRTFString(r"{\rtf1\ansi testing}"))
     self.assertEqual(len(lines), 1)
     self.assertEqual(lines[0]["string"],"testing")
コード例 #10
0
ファイル: testRTF.py プロジェクト: rektide/graffle2svg
 def testfontweight(self):
     ''' test that font size is correctly applied on spans'''
     lines = list(extractRTFString(r"{\rtf\ansi\fs10\b testing}"))
     self.assertEqual(len(lines), 1)
     self.assertEqual(list(lines)[0]['style'], {"font-size":"5.0pt","font-weight":"bold"})
コード例 #11
0
ファイル: testRTF.py プロジェクト: ccnmtl/graffle2svg
 def testfontweight(self):
     extractRTFString(r"{\rtf\ansi\fs10\b testing}")