Esempio n. 1
0
def create_diagram(data, conf):
    diagram = Group(data, conf)
    s = svg(width = str(diagram.get_content_width()), height = str(diagram.get_content_height()))
    m = metadata()

    #creating metadata elements
    dctitle = dctitleEl()
    dctype = dctypeEl()
    dcformat = dcformatEl()
    cc = ccEl()
    cc.addElement(dcformat)
    cc.addElement(dctype)
    cc.addElement(dctitle)
    rdf = rdfEl()
    rdf.addElement(cc)
    m.addElement(rdf)

    s.addElement(m)
    sn = sodipodiNamedViewEl()
    s.addElement(sn)
    d = defs()
    d.addElement(Arrow("small-right-arrow", 3))
    d.addElement(Arrow("normal-right-arrow", 5))
    d.addElement(Arrow("large-right-arrow", 7))
    s.addElement(d)
    diagram.render_content(s, 0, 0)

    xml = s.getXML()
    return s.wrap_xml(xml)
Esempio n. 2
0
def cap_def(name, children):
    d = defs()
    m = BaseElement('marker')
    m.setAttribute('id', name)
    m.setAttribute('orient', 'auto')
    #m.setAttribute('markerUnits', 'strokeWidth')
    d.addElement(m)
    for c in children:
        m.addElement(c)
    return d
def cap_def(name, children):
    d = defs()
    m = BaseElement('marker')
    m.setAttribute('id', name)
    m.setAttribute('orient', 'auto')
    #m.setAttribute('markerUnits', 'strokeWidth')
    d.addElement(m)
    for c in children:
        m.addElement(c)
    return d
Esempio n. 4
0
 def write(self, path):
     """
     Writes the page to the SVG file with the provided path.
     """
     # Create a new SVG document
     doc = svg(
         x=0, y=0, 
         width=mm_to_px(self.width), height=mm_to_px(self.height)
     )
     # Draw all the content: first the background, then the content,
     # and finally the labels
     background_group = g()
     background_group.setAttribute('id', 'background')
     content_group = g()
     content_group.setAttribute('id', 'content')
     label_group = g()
     label_group.setAttribute('id', 'labels')
     contour_group = g()
     contour_group.setAttribute('id', 'contours')
     my_defs = defs()
     for c in self.containers:
         if c.has_background: c.draw_background(background_group)
         if c.needs_clipping and (c.has_content or c.has_labels):
             path_id = random_string(16)
             clprect = rect(
                 x=mm_to_px(c.x), y=mm_to_px(c.y),
                 width=mm_to_px(c.width), height=mm_to_px(c.height)
             )
             clppath = clipPath(id=path_id)
             clppath.addElement(clprect)
             my_defs.addElement(clppath)
             # Draw content with clipping path
             if c.has_content:
                 container_grp = g()
                 container_grp.set_clip_path('url(#%s)' % path_id)
                 c.draw_content(container_grp)
                 content_group.addElement(container_grp)
             # The labels on top of the content
             if c.has_labels:
                 container_grp = g()
                 container_grp.set_clip_path('url(#%s)' % path_id)
                 c.draw_labels(container_grp)
                 label_group.addElement(container_grp)
         else:
             if c.has_content: c.draw_content(content_group)
             if c.has_labels: c.draw_labels(label_group)
         if c.has_contour: c.draw_contour(contour_group)
     # Add each of the base groups
     doc.addElement(my_defs)
     doc.addElement(background_group)
     doc.addElement(content_group)
     doc.addElement(label_group)
     doc.addElement(contour_group)
     # Write the SVG document to the file
     doc.save(path)
Esempio n. 5
0
 def defs(self):
     d = defs()
     for party in self.parties:
         d.addElement(self.chair(party))
     return d
Esempio n. 6
0
File: svg.py Progetto: ncqgm/gnumed
 def _create_defs(self, definition):
     d = defs()
     d.addElement(definition)
     return d
Esempio n. 7
0
    def __prepareDefsContainer(self):
        self.__defs = defs();

        self.__defs.addElement(Marker(self.__ARROW_MARKER_ID))

        self.__SVGObject.addElement(self.__defs);
Esempio n. 8
0
 def defs(self):
     d = defs()
     for party in self.parties:
         d.addElement(self.chair(party['initials'], party['color_1'], party['color_2']))
     return d
Esempio n. 9
0
 def _create_defs(self, definition):
     d = defs()
     d.addElement(definition)
     return d