src/reportlab/graphics/renderPM.py
branchpy33
changeset 3723 99aa837b6703
parent 3721 0c93dd8ff567
child 3763 d079e73fb7b0
equal deleted inserted replaced
3722:29c11b905751 3723:99aa837b6703
    14 
    14 
    15 from reportlab.graphics.shapes import *
    15 from reportlab.graphics.shapes import *
    16 from reportlab.graphics.renderbase import StateTracker, getStateDelta, renderScaledDrawing
    16 from reportlab.graphics.renderbase import StateTracker, getStateDelta, renderScaledDrawing
    17 from reportlab.pdfbase.pdfmetrics import getFont, unicode2T1
    17 from reportlab.pdfbase.pdfmetrics import getFont, unicode2T1
    18 from math import sin, cos, pi, ceil
    18 from math import sin, cos, pi, ceil
    19 from reportlab.lib.utils import getStringIO, open_and_read
    19 from reportlab.lib.utils import getBytesIO, open_and_read
    20 from reportlab import rl_config
    20 from reportlab import rl_config
    21 
    21 
    22 class RenderPMError(Exception):
    22 class RenderPMError(Exception):
    23     pass
    23     pass
    24 
    24 
   272         if bg is None: bg = self._bg
   272         if bg is None: bg = self._bg
   273         self._drawing.width, self._drawing.height = w, h
   273         self._drawing.width, self._drawing.height = w, h
   274         A = {'ctm':None, 'strokeWidth':None, 'strokeColor':None, 'lineCap':None, 'lineJoin':None, 'dashArray':None, 'fillColor':None}
   274         A = {'ctm':None, 'strokeWidth':None, 'strokeColor':None, 'lineCap':None, 'lineJoin':None, 'dashArray':None, 'fillColor':None}
   275         gs = self._gs
   275         gs = self._gs
   276         fN,fS = gs.fontName, gs.fontSize
   276         fN,fS = gs.fontName, gs.fontSize
   277         for k in list(A.keys()):
   277         for k in A.keys():
   278             A[k] = getattr(gs,k)
   278             A[k] = getattr(gs,k)
   279         del gs, self._gs
   279         del gs, self._gs
   280         gs = self.__dict__['_gs'] = _renderPM.gstate(w,h,bg=bg)
   280         gs = self.__dict__['_gs'] = _renderPM.gstate(w,h,bg=bg)
   281         for k in list(A.keys()):
   281         for k in A.keys():
   282             setattr(self,k,A[k])
   282             setattr(self,k,A[k])
   283         gs.setFont(fN,fS)
   283         gs.setFont(fN,fS)
   284 
   284 
   285     def toPIL(self):
   285     def toPIL(self):
   286         im = _getImage().new('RGB', size=(self._gs.width, self._gs.height))
   286         im = _getImage().new('RGB', size=(self._gs.width, self._gs.height))
   353         if not hasattr(fn,'write') and os.name=='mac':
   353         if not hasattr(fn,'write') and os.name=='mac':
   354             from reportlab.lib.utils import markfilename
   354             from reportlab.lib.utils import markfilename
   355             markfilename(fn,ext=fmt)
   355             markfilename(fn,ext=fmt)
   356 
   356 
   357     def saveToString(self,fmt='GIF'):
   357     def saveToString(self,fmt='GIF'):
   358         s = getStringIO()
   358         s = getBytesIO()
   359         self.saveToFile(s,fmt=fmt)
   359         self.saveToFile(s,fmt=fmt)
   360         return s.getvalue()
   360         return s.getvalue()
   361 
   361 
   362     def _saveToBMP(self,f):
   362     def _saveToBMP(self,f):
   363         '''
   363         '''
   659     configPIL dict is passed to image save method'''
   659     configPIL dict is passed to image save method'''
   660     c = drawToPMCanvas(d, dpi=dpi, bg=bg, configPIL=configPIL, showBoundary=showBoundary)
   660     c = drawToPMCanvas(d, dpi=dpi, bg=bg, configPIL=configPIL, showBoundary=showBoundary)
   661     c.saveToFile(fn,fmt)
   661     c.saveToFile(fn,fmt)
   662 
   662 
   663 def drawToString(d,fmt='GIF', dpi=72, bg=0xffffff, configPIL=None, showBoundary=rl_config._unset_):
   663 def drawToString(d,fmt='GIF', dpi=72, bg=0xffffff, configPIL=None, showBoundary=rl_config._unset_):
   664     s = getStringIO()
   664     s = getBytesIO()
   665     drawToFile(d,s,fmt=fmt, dpi=dpi, bg=bg, configPIL=configPIL)
   665     drawToFile(d,s,fmt=fmt, dpi=dpi, bg=bg, configPIL=configPIL)
   666     return s.getvalue()
   666     return s.getvalue()
   667 
   667 
   668 save = drawToFile
   668 save = drawToFile
   669 
   669