;ς
³0sDc           @   sG  d  Z  d Z d k Z d k l Z d k l Z d k l Z d k	 l
 Z
 d k l Z d k l Z d	 k l Z d
 k l Z d k l Z l Z l Z d k l Z d k l Z e d d d d d d e Z d e f d     YZ d   Z d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d      YZ  y) d! k! l" Z" l# Z# l$ Z$ l% Z% d" Z& Wn e' j
 o d# Z& n Xe& or d$ f  d%     YZ( d& e e( f d'     YZ) d( e) f d)     YZ* d* e f d+     YZ+ d, e+ f d-     YZ, n d.   Z- d/   Z. e/ d0 j o e.   n d S(1   s@   This includes some demos of platypus for use in the API proposals6    $Id: figures.py 2385 2004-06-17 15:26:05Z rgbecker $ N(   s   colors(   s   Canvas(   s   ParagraphStyle(   s   recursiveImport(   s   Frame(   s   Flowable(   s	   Paragraph(   s   inch(   s   TA_LEFTs   TA_RIGHTs	   TA_CENTER(   s   isColor(   s   toColors   Captions   fontNames   Times-Italics   fontSizei
   s	   alignments   Figurec           B   st   t  Z d d d e e d  e d d  Z d   Z d   Z d	   Z d
   Z d   Z	 d   Z
 d   Z d   Z RS(   Ns    s   Times-Italici   s   blacki   c
   
      C   s   t  i |   | |  _ | |  _ | |  _ | |  _ | |  _ | |  _	 | |  _
 t |  _ d |  _ | |  _ |	 |  _ d |  _ d |  _ d  S(   Ni    i   (   s   Flowables   __init__s   selfs   widths   heights   figureHeights   captions   captionFonts   captionSizes   captionTextColors   captionBackColors   Nones   _captionDatas   captionHeights
   backgrounds   borders   spaceBefores
   spaceAfter(
   s   selfs   widths   heights   captions   captionFonts   captionSizes
   backgrounds   captionTextColors   captionBackColors   border(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__   s    												c         C   sΕ   |  i } |  i } |  i } |  i } |  i } |  i | | | | | f j ou | | | | | f |  _ t d d | d | d d | d | d | d | d	 d
 t |  _	 t
 |  i |  i	  |  _ n d  S(   Ns   Captions   fontNames   fontSizes   leadingf1.2s	   textColors	   backColors   spaceBeforef0.5s	   alignment(   s   selfs   captions   captionFonts   captionSizes   captionTextColors   captionBackColors   _captionDatas   ParagraphStyles	   TA_CENTERs   captionStyles	   Paragraphs   captionPara(   s   selfs   captionTextColors   captions   captionSizes   captionBackColors   captionFont(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   _getCaptionPara-   s     					

c         C   sͺ   |  i ol |  i   |  i i |  i | |  i  \ } } | |  _
 |  i
 |  i |  _ | |  i j o | |  _ q n |  i |  _ d | |  i |  _ |  i |  i f Sd  S(   Nf0.5(   s   selfs   captions   _getCaptionParas   captionParas   wraps   widths   availHeights   figureHeights   ws   hs   captionHeights   heights
   availWidths   dx(   s   selfs
   availWidths   availHeights   ws   h(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   wrapA   s    

%	 c         C   s   |  i i |  i d  |  i o. |  i   |  i   |  i i d |  i  n |  i o |  i	   n |  i
 o |  i   n |  i   d  S(   Ni    (   s   selfs   canvs	   translates   dxs   captions   _getCaptionParas   drawCaptions   captionHeights
   backgrounds   drawBackgrounds   borders
   drawBorders
   drawFigure(   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   drawN   s    




c         C   s#   |  i i d d |  i |  i  d  S(   Ni    (   s   selfs   canvs   rects   widths   figureHeight(   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   drawBorderZ   s    c         C   sV   |  i i   |  i i |  i  |  i i d d |  i |  i d d |  i i   d  S(   Ni    s   filli   (	   s   selfs   canvs	   saveStates   setFillColors
   backgrounds   rects   widths   figureHeights   restoreState(   s   selfs   color(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   _doBackground]   s    %c         C   sR   t  |  i  o |  i |  i  n+ y  t |  i  } |  i |  Wn n Xd S(   s   For use when using a figure on a differently coloured background.
        Allows you to specify a colour to be used as a background for the figure.N(   s   isColors   selfs
   backgrounds   _doBackgrounds   toColors   c(   s   selfs   c(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   drawBackgroundc   s     c         C   s   |  i i |  i d d  d  S(   Ni    (   s   selfs   captionParas   drawOns   canv(   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   drawCaptiono   s    c         C   s   d  S(   N(    (   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   drawFigurer   s    (   s   __name__s
   __module__s   Nones   toColors   __init__s   _getCaptionParas   wraps   draws
   drawBorders   _doBackgrounds   drawBackgrounds   drawCaptions
   drawFigure(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   Figure   s   $							c      	   C   sΏ   |  i   } d | } |  i d d d  |  i | | | | | | d d d d |  i d d d  |  i
 d  |  i | | | | d d d d |  i d d d  |  i d d d  d  S(   Nf0.050000000000000003f0.5s   strokei    s   filli   f0.90000000000000002(   s   canvass	   beginPaths   pths   widths   corners   setFillColorRGBs   rects   xs   ys   heights   setLineWidths   setStrokeColorRGB(   s   canvass   xs   ys   widths   heights   pths   corner(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   drawPageu   s    
*"s
   PageFigurec           B   s,   t  Z d  Z e d  Z d   Z d   Z RS(   sc   Shows a blank page in a frame, and draws on that.  Used in
    illustrations of how PLATYPUS works.c         C   s:   t  i |  d t d t  d |  _ t |  _ | |  _ d  S(   Ni   s   Figure 1 - a blank page(   s   Figures   __init__s   selfs   inchs   captions   captionStyles
   background(   s   selfs
   background(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__   s    		c         C   s   d  S(   N(    (   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   drawVirtualPage   s    c         C   sm   t  |  i d t d t d t d t  |  i i d t d t  |  i i d d d d  |  i   d  S(   Nf0.625f0.25f1.75f2.5f8.2699999999999996f11.69(   s   drawPages   selfs   canvs   inchs	   translates   scales   drawVirtualPage(   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   drawFigure   s    )(   s   __name__s
   __module__s   __doc__s   Nones   __init__s   drawVirtualPages
   drawFigure(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   PageFigure   s    	s   PlatPropFigure1c           B   s    t  Z d  Z d   Z d   Z RS(   s$   This shows a page with a frame on itc         C   s   t  i |   d |  _ d  S(   Ns%   Figure 1 - a page with a simple frame(   s
   PageFigures   __init__s   selfs   caption(   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__   s    c         C   s   t  |  i  d  S(   N(   s   demo1s   selfs   canv(   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   drawVirtualPage   s    (   s   __name__s
   __module__s   __doc__s   __init__s   drawVirtualPage(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   PlatPropFigure1   s    	s
   FlexFigurec           B   s5   t  Z d  Z e d  Z d   Z d   Z d   Z RS(   sH   Base for a figure class with a caption. Can grow or shrink in proportionc         C   s   t  i |  | | | d d d d d t d |  _ d |  _ t |  _	 t
 d d d	 d
 d d d d t |  _ t |  _ | |  _ d  S(   Ns   captionFonts   Helvetica-Obliques   captionSizei   s
   backgroundi   s   Captions   fontNames   Timess   fontSizei   s   spaceBeforei	   s	   alignment(   s   Figures   __init__s   selfs   widths   heights   captions   Nones   shrinkToFits	   growToFits   scaleFactors   ParagraphStyles	   TA_CENTERs   captionStyles   _scaleFactors
   background(   s   selfs   widths   heights   captions
   background(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__£   s    
				c         C   s4  |  i t j p |  i | j p |  i | j o t i |  | |  \ } } | |  i } |  i t j o( t | |  i | | |  i  |  _ n |  i |  _ |  i d j  o |  i o. |  i |  i d |  _ |  i |  i |  _ q0|  i d j o |  i o. |  i |  i d |  _ |  i |  i |  _ q0n d S(   s4   Rescale to fit according to the rules, but only oncei   f0.0001N(   s   selfs   _scaleFactors   Nones   widths
   availWidths   heights   availHeights   Figures   wraps   ws   hs   figureHeights   captionHeights   scaleFactors   mins   shrinkToFits	   growToFit(   s   selfs
   availWidths   availHeights   captionHeights   hs   w(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   _scale΄   s     0(c         C   s'   |  i | |  t i |  | |  Sd  S(   N(   s   selfs   _scales
   availWidths   availHeights   Figures   wrap(   s   selfs
   availWidths   availHeight(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   wrapΕ   s    c         C   s'   |  i | |  t i |  | |  Sd  S(   N(   s   selfs   _scales
   availWidths   availHeights   Figures   split(   s   selfs
   availWidths   availHeight(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   splitΙ   s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s   _scales   wraps   split(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   FlexFigure‘   s
    		s   ImageFigurec           B   s#   t  Z d  Z e d  Z d   Z RS(   s   Image with a caption below itc         C   sl   t  i i |  p t d |  d k l } | |  i   \ } } | |  _ t i |  | | | |  d  S(   Ns   image file %s not found(   s   ImageReader(   s   oss   paths   isfiles   filenames   AssertionErrors   reportlab.lib.utilss   ImageReaders   getSizes   ws   hs   selfs
   FlexFigures   __init__s   captions
   background(   s   selfs   filenames   captions
   backgrounds   ws   ImageReaders   h(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__Ο   s
    !	c         C   s)   |  i i |  i d d |  i |  i  d  S(   Ni    (   s   selfs   canvs   drawInlineImages   filenames   widths   figureHeight(   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   drawFigureΦ   s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s
   drawFigure(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   ImageFigureΝ   s    s   DrawingFigurec           B   s&   t  Z d  Z e e d  Z d   Z RS(   s8   Drawing with a caption below it.  Clunky, scaling fails.c         C   s\   t  | |  } t | |  } |   |  _ t	 i
 |  |  i i |  i i | |  d |  _ d  S(   Ni   (   s   recursiveImports
   modulenames   baseDirs   modules   getattrs	   classnames   klasss   selfs   drawings
   FlexFigures   __init__s   widths   heights   captions
   backgrounds	   growToFit(   s   selfs
   modulenames	   classnames   captions   baseDirs
   backgrounds   modules   klass(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__ά   s    			c         C   s6   |  i i |  i |  i  |  i i |  i d d  d  S(   Ni    (   s   selfs   canvs   scales   _scaleFactors   drawings   drawOn(   s   self(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   drawFigureη   s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s
   drawFigure(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   DrawingFigureΪ   s    (   s   restoreFormss
   storeFormss   storeFormsInMemorys   restoreFormsInMemoryi   i    s   PageCatcherCachingMixInc           B   s)   t  Z d  Z d   Z d   Z d   Z RS(   s+   Helper functions to cache pages for figuresc         C   sB   t  i i |  \ } } t  i i |  \ } } d | | f Sd  S(   Ns	   %s_page%d(
   s   oss   paths   splits   pdfFileNames   dirnames   filenames   splitexts   roots   exts   pageNo(   s   selfs   pdfFileNames   pageNos   roots   exts   filenames   dirname(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   getFormNameϋ   s    c         C   si   |  i | |  } t i i | d  o8 t i | d  d } t i |  d } | | j Sn d Sd S(   s&   returns 1 if no forms or form is olders   .frmi   i   N(   s   selfs   getFormNames   pdfFileNames   pageNos   formNames   oss   paths   existss   stats   formModTimes
   pdfModTime(   s   selfs   pdfFileNames   pageNos
   pdfModTimes   formModTimes   formName(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   needsProcessing  s     c         C   sB   |  i | |  } t | | d d | d d | g | d Sd  S(   Ns   .frms   prefixs   _s   pagenumbers(   s   selfs   getFormNames   pdfFileNames   pageNos   formNames
   storeForms(   s   selfs   pdfFileNames   pageNos   formName(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   processPDF  s
    
(   s   __name__s
   __module__s   __doc__s   getFormNames   needsProcessings
   processPDF(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   PageCatcherCachingMixInψ   s    		
s   cachePageCatcherFigureNonA4c           B   s#   t  Z d  Z e d  Z d   Z RS(   s?   PageCatcher page with a caption below it.  Size to be supplied.c         C   s   t  i i |  \ |  _ |  _ |  i d j o t  i |  _ n | |  _ |  i |  i |  i  d t	 |  |  _
 t i |  | | | |  d  S(   Ns    s   _(   s   oss   paths   splits   filenames   selfs   dirnames   curdirs   pageNos   getFormNames   strs   formNames
   FlexFigures   __init__s   widths   heights   captions
   background(   s   selfs   filenames   pageNos   captions   widths   heights
   background(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__  s    	)c         C   sΤ   |  i i   |  i i |  i  os |  i t i |  i } |  i
 | |  i  d } |  i | |  i  o |  i | |  i  n t | |  i  } n |  i i |  i |  i  |  i i |  i  |  i i   d  S(   Ns   .frm(   s   selfs   canvs	   saveStates   hasForms   formNames   dirnames   oss   seps   filenames   restorePaths   getFormNames   pageNos   formFileNames   needsProcessings
   processPDFs   restoreFormss   namess   scales   _scaleFactors   doForms   restoreState(   s   selfs   restorePaths   formFileNames   names(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   drawFigure   s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s
   drawFigure(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   cachePageCatcherFigureNonA4  s    s   cachePageCatcherFigurec           B   s    t  Z d  Z d d e d  Z RS(   s   PageCatcher page with a caption below it.  Presumes A4, Portrait.
        This needs our commercial PageCatcher product, or you'll get a blank.iS  iJ  c      	   C   s&   t  i |  | | | | | d | d  S(   Ns
   background(	   s   cachePageCatcherFigureNonA4s   __init__s   selfs   filenames   pageNos   captions   widths   heights
   background(   s   selfs   filenames   pageNos   captions   widths   heights
   background(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__1  s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   cachePageCatcherFigure.  s    s   PageCatcherFigureNonA4c           B   s,   t  Z d  Z h  Z e e d  Z d   Z RS(   s?   PageCatcher page with a caption below it.  Size to be supplied.c   	      C   sΎ   | } |  _  | |  _ | i t i d  i d d  i d d  i d d  i d d  } | i d d  d t |  d |  _ |  i t |  |  _	 | |  _
 t i |  | | | |  d  S(   Ns   _s   /s   \s   -s   :s   .(   s   filenames   fns   selfs   pageNos   replaces   oss   seps   strs   prefixs   formNames   cachings
   FlexFigures   __init__s   widths   heights   captions
   background(	   s   selfs   filenames   pageNos   captions   widths   heights
   backgrounds   cachings   fn(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__9  s    	E'	c         C   s  |  i i |  i  oΌ |  i |  i j o |  i |  i \ } } nz t |  i d  } | i	   } | i   t | d |  i g d |  i \ } } |  i d j o | | f |  i |  i <n t | |  i  } n |  i i   |  i i |  i |  i  |  i i |  i  |  i i   d  S(   Ns   rbs   pagenumberss   prefixs   memory(   s   selfs   canvs   hasForms   formNames   filenames   _caches   fs   datas   opens   reads   pdfs   closes   storeFormsInMemorys   pageNos   prefixs   cachings   restoreFormsInMemorys	   saveStates   scales   _scaleFactors   doForms   restoreState(   s   selfs   fs   datas   pdf(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys
   drawFigureB  s    
'(   s   __name__s
   __module__s   __doc__s   _caches   Nones   __init__s
   drawFigure(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   PageCatcherFigureNonA44  s    	s   PageCatcherFigurec           B   s#   t  Z d  Z d d e e d  Z RS(   s   PageCatcher page with a caption below it.  Presumes A4, Portrait.
        This needs our commercial PageCatcher product, or you'll get a blank.iS  iJ  c         C   s,   t  i |  | | | | | d | d | d  S(   Ns
   backgrounds   caching(
   s   PageCatcherFigureNonA4s   __init__s   selfs   filenames   pageNos   captions   widths   heights
   backgrounds   caching(   s   selfs   filenames   pageNos   captions   widths   heights
   backgrounds   caching(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   __init__V  s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__(    (    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   PageCatcherFigureS  s    c      
   C   s   t  d t d t d t d t d d } t d d d d	 d
 d d d d } t d d |  } t d d |  } | | g } | i	 | |   d  S(   Ni   i   i   s   showBoundaryi   s   Bodys   fontNames   Times-Romans   fontSizei   s   leadingi   s   spaceBeforei   s   Spam spam spam spam. s   Eggs eggs eggs. (   s   Frames   inchs   frames   ParagraphStyles	   bodyStyles	   Paragraphs   para1s   para2s   mydatas   addFromLists   canvas(   s   canvass   mydatas   para1s   para2s	   bodyStyles   frame(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   demo1Y  s    
$c          C   sw   t  d  }  t t t d t d t d d } t   } t d  | _ t d  | _	 | i
 | g |   |  i   d  S(   Ns   figures.pdfi   i	   s   showBoundaryi   s   blues   lightyellow(   s   Canvass   cs   Frames   inchs   fs   PlatPropFigure1s   vs   toColors   captionTextColors   captionBackColors   addFromLists   save(   s   cs   fs   v(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   test1j  s    #	s   __main__(0   s   __doc__s   __version__s   oss   reportlab.libs   colorss   reportlab.pdfgen.canvass   Canvass   reportlab.lib.styless   ParagraphStyles   reportlab.lib.utilss   recursiveImports   reportlab.platypuss   Frames   Flowables	   Paragraphs   reportlab.lib.unitss   inchs   reportlab.lib.enumss   TA_LEFTs   TA_RIGHTs	   TA_CENTERs   reportlab.lib.validatorss   isColors   reportlab.lib.colorss   toColors   captionStyles   Figures   drawPages
   PageFigures   PlatPropFigure1s
   FlexFigures   ImageFigures   DrawingFigures   rlextra.pageCatcher.pageCatchers   restoreFormss
   storeFormss   storeFormsInMemorys   restoreFormsInMemorys   _hasPageCatchers   ImportErrors   PageCatcherCachingMixIns   cachePageCatcherFigureNonA4s   cachePageCatcherFigures   PageCatcherFigureNonA4s   PageCatcherFigures   demo1s   test1s   __name__(#   s   test1s   Canvass   PageCatcherFigures   cachePageCatcherFigures   Flowables   PlatPropFigure1s
   FlexFigures   colorss   PageCatcherCachingMixIns   restoreFormsInMemorys   restoreFormss   isColors   storeFormsInMemorys   toColors   TA_LEFTs   inchs   __version__s   ParagraphStyles
   storeFormss   ImageFigures	   Paragraphs   PageCatcherFigureNonA4s   TA_RIGHTs   drawPages   cachePageCatcherFigureNonA4s
   PageFigures   Figures   Frames   recursiveImports   _hasPageCatchers   captionStyles	   TA_CENTERs   demo1s   oss   DrawingFigure(    (    sD   /home/packages/reportlab/reportlab_2_0/reportlab/platypus/figures.pys   ?   sH   	^	,
			