Exemplo n.º 1
0
    def draw(self, renderer, *args, **kwargs):
        #        return FigureImage.draw(self, renderer, *args, **kwargs)
        if (hasattr(renderer, '_vector_renderer')
                and isinstance(renderer._vector_renderer, RendererPdf)):
            pdffile_upgrade(renderer._vector_renderer.file)
            mixedrenderer_upgrade(renderer)
            gc = renderer.new_gc()
            import ifigure.utils.buildxobj as buildxobj
            o = buildxobj.CacheXObj()

            gc.set_alpha(self.get_alpha())

            ocwd = os.getcwd()
            _pdffile = os.path.join(self._figobj().owndir(), self._pdf_file)
            os.chdir(os.path.dirname(_pdffile))
            file = os.path.basename(_pdffile)
            obj = o.load(file)
            os.chdir(ocwd)
            self._obj = obj
            renderer.draw_pdf(gc, round(self.ox), round(self.oy),
                              self._image_scale, pdfobj(obj))
            gc.restore()
        elif (hasattr(renderer, '_vector_renderer')
              and isinstance(renderer._vector_renderer, RendererPS)):
            gc = renderer.new_gc()
            ps_write0 = renderer._vector_renderer._pswriter.write
            _eps_file = os.path.join(self._figobj().owndir(), self._eps_file)

            def ps_write(txt):
                if unicode_file:
                    ps_write0(unicode(txt))
                else:
                    ps_write0(txt)

            if not hasattr(renderer._vector_renderer, '_eps_func_written'):
                ps_write(eps_funcs)
                renderer._vector_renderer._eps_func_written = True
            ps_write('BeginEPSF\n')
            ps_write(
                str(round(self.ox)) + ' ' + str(round(self.oy)) +
                ' translate\n')
            ps_write(
                str(self._image_scale[0]) + ' ' + str(self._image_scale[1]) +
                ' scale\n')
            ps_write(
                str(-self._eps_bbox[0]) + ' ' + str(-self._eps_bbox[1]) +
                ' translate\n')
            ps_write('%%BeginDocument: "' + os.path.basename(_eps_file) +
                     '"\n')
            fid = open(_eps_file, 'r')
            for l in fid.readlines():
                ps_write(l)
            fid.close()
            ps_write('%%EndDocument\n')
            ps_write('EndEPSF\n')
            gc.restore()
        else:
            return FigureImage.draw(self, renderer, *args, **kwargs)
Exemplo n.º 2
0
    def draw(self, renderer, *args, **kwargs):
#        return FigureImage.draw(self, renderer, *args, **kwargs)
        if (hasattr(renderer, '_vector_renderer') and
            isinstance(renderer._vector_renderer, RendererPdf)):
            pdffile_upgrade(renderer._vector_renderer.file)
            mixedrenderer_upgrade(renderer)
            gc = renderer.new_gc()
            import ifigure.utils.buildxobj as buildxobj
            o = buildxobj.CacheXObj()

            gc.set_alpha(self.get_alpha())

            ocwd = os.getcwd()
            _pdffile = os.path.join(self._figobj().owndir(), self._pdf_file)
            os.chdir(os.path.dirname(_pdffile))
            file = os.path.basename(_pdffile)
            obj = o.load(file)
            os.chdir(ocwd)
            self._obj =  obj
            renderer.draw_pdf(gc, round(self.ox), 
                                  round(self.oy), 
                              self._image_scale, pdfobj(obj))
            gc.restore()
        elif (hasattr(renderer, '_vector_renderer') and
            isinstance(renderer._vector_renderer, RendererPS)):
            gc = renderer.new_gc()
            ps_write0 = renderer._vector_renderer._pswriter.write
            _eps_file = os.path.join(self._figobj().owndir(), self._eps_file)
            def ps_write(txt):
                if unicode_file:                
                    ps_write0(unicode(txt))
                else:
                    ps_write0(txt)
                
            if not hasattr(renderer._vector_renderer, '_eps_func_written'):
                ps_write(eps_funcs)
                renderer._vector_renderer._eps_func_written = True
            ps_write('BeginEPSF\n')
            ps_write(str(round(self.ox)) + ' ' + str(round(self.oy)) + ' translate\n')
            ps_write(str(self._image_scale[0])+' '+str(self._image_scale[1]) + ' scale\n')
            ps_write(str(-self._eps_bbox[0]) + ' ' + str(-self._eps_bbox[1]) + ' translate\n')
            ps_write('%%BeginDocument: "'+ os.path.basename(_eps_file) + '"\n')
            fid= open(_eps_file, 'r')
            for l in fid.readlines():
                ps_write(l)
            fid.close()
            ps_write('%%EndDocument\n')
            ps_write('EndEPSF\n')
            gc.restore()
        else:
            return FigureImage.draw(self, renderer, *args, **kwargs)