Changeset 2268

Show
Ignore:
Timestamp:
03/13/08 11:11:13 (2 months ago)
Author:
wrobe..@pld-linux.org
Message:

- started to port gaphorconvert script to cairo

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/trunk/bin/gaphorconvert

    r720 r2268  
    22 
    33import gaphor 
    4 import gaphor.storage as storage 
     4from gaphor.storage import storage 
    55import gaphor.UML as UML 
    6 import diacanvas 
    76 
    87import cairo 
    9 import cairo.svg 
    108 
    119import optparse 
     
    108106        # and pdf; it should be changed in the future, when diacanvas 
    109107        # uses canvas which supports pdf as output format... 
    110         svg = diacanvas.ExportSVG() 
    111         svg.render(diagram.canvas) 
    112         svg.save(svg_name) 
     108        print dir(diagram) 
     109        log.debug('Exporting SVG image to: %s' % filename) 
     110        view = View(canvas) 
     111        view.painter = ItemPainter() 
    113112 
     113        # Update bounding boxes with a temporaly CairoContext 
     114        # (used for stuff like calculating font metrics) 
     115        tmpsurface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 0, 0) 
     116        tmpcr = cairo.Context(tmpsurface) 
     117        view.update_bounding_box(tmpcr) 
     118        tmpcr.show_page() 
     119        tmpsurface.flush() 
     120 
     121        w, h = view.bounding_box.width, view.bounding_box.height 
     122        surface = cairo.SVGSurface(filename, w, h) 
     123        cr = cairo.Context(surface) 
     124        view.matrix.translate(-view.bounding_box.x, -view.bounding_box.y) 
     125        view.paint(cr) 
     126        cr.show_page() 
     127        surface.flush() 
     128        surface.finish() 
     129 
     130        import sys 
     131        sys.exit(1) 
    114132        if options.format == 'pdf': 
    115133            svg = cairo.svg.Context()