예제 #1
0
def draw_svg(filename, size=(800, 600)):
    from chaco.svg_graphics_context import SVGGraphicsContext
    container = create_plot()
    container.bounds = list(size)
    container.do_layout(force=True)
    gc = SVGGraphicsContext(size)
    gc.render_component(container)
    gc.save(filename)
예제 #2
0
def export_plot_svg(parent):
    dlg = wx.FileDialog(parent, "Export plot as SVG",
                        parent.config.get_path("SVG"), "",
                        "SVG file" + " (*.svg)|*.svg",
                        wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
    if dlg.ShowModal() == wx.ID_OK:
        path = dlg.GetPath().encode("utf-8")
        if not path.endswith(".svg"):
            path += ".svg"
        parent.config.set_path(os.path.dirname(path), "SVG")
        container = parent.PlotArea.mainplot.container

        retol = hide_scatter_inspector(container)

        container.do_layout(force=True)
        plot = container.components[0]
        gc = SVGGraphicsContext(plot.outer_bounds)
        gc.render_component(plot.components[-1])
        #Start a new page for subsequent draw commands.
        gc.save(path)

        if retol is not None:
            retol.visible = True
예제 #3
0
def save_pdf(component,
             path=None,
             default_directory=None,
             view=False,
             options=None):
    if default_directory is None:
        default_directory = os.path.join(os.path.expanduser('~'), 'Documents')

    ok = True
    if options is None:
        ok = False
        options = FigurePDFOptions()
        options.load()
        dlg = SavePDFDialog(model=options)
        info = dlg.edit_traits(kind='livemodal')
        # path = '/Users/ross/Documents/pdftest.pdf'
        if info.result:
            options.dump()
            ok = True
    if ok:
        if path is None:
            dlg = FileDialog(action='save as',
                             default_directory=default_directory)

            if dlg.open() == OK:
                path = dlg.path

        if path:
            use_ps = False
            use_svg = False
            if use_ps:
                path = add_extension(path, '.ps')
                gc = PSGC(component.bounds)
                component.draw(gc)
                gc.save(path)
            elif use_svg:
                path = add_extension(path, '.svg')
                gc = SVGGraphicsContext(component.bounds)
                obackbuffer = component.use_backbuffer
                component.use_backbuffer = False
                gc.render_component(component)
                gc.save(path)
                component.use_backbuffer = obackbuffer

            else:
                path = add_extension(path, '.pdf')
                gc = myPdfPlotGraphicsContext(filename=path,
                                              dest_box=options.dest_box,
                                              pagesize=options.page_size)

                obounds = component.bounds
                # size = None
                if not obounds[0] and not obounds[1]:
                    size = options.bounds
                    component.do_layout(size=size, force=True)

                if options.fit_to_page:
                    size = options.bounds
                    component.do_layout(size=size, force=True)

                gc.render_component(component, valign='center')
                gc.save()
                if view:
                    view_file(path)

                if options.fit_to_page:
                    component.do_layout(size=obounds, force=True)