equal
deleted
inserted
replaced
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 |