+
    bIiG                     >   R t Rt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ]! R]^
]R7      t ! R R]4      tR t ! R R]4      t ! R R]4      t  ! R R]4      t! ! R R]!4      t" ! R R]!4      t# ^ RI$H%t%H&t&H't'H(t( ^t)])'       d8    ! R R 4      t+ ! R! R"]!]+4      t, ! R# R$],4      t- ! R% R&]!4      t. ! R' R(].4      t/R) t0R* t1]2R+8X  d
   ]1! 4        R# R#   ]* d    ^ t) Lbi ; i),z@This includes some demos of platypus for use in the API proposalz3.3.0N)colors)Canvas)ParagraphStyle)recursiveImportstrTypes)Frame)Flowable)	Paragraph)inch)TA_LEFTTA_RIGHT	TA_CENTER)isColor)toColor)_baseFontName_baseFontNameICaption)fontNamefontSize	alignmentc                      a  ] tR t^t o R]^R]! R4      RR^^RRRR3R ltR tR	 tR
 t	R t
R tR tR tR tRtV tR# )Figure NblackcentrebottomCENTERc                F   \         P                  ! V 4       Wn        W n        W0n        W@n        WPn        Wpn        Wn        T;'       g
    R V,          V n	        Wn
        Wn        RV n        ^ V n        W`n        Wn        Wn        Wn        Wn        V P'                  4        R# )      ?N)r   __init__widthfigureHeightcaptioncaptionFontcaptionSizecaptionTextColorcaptionBackColor
captionGapcaptionAligncaptionPosition_captionDatacaptionHeight
backgroundborderspaceBefore
spaceAfterhAlign_getCaptionPara)selfr    heightr"   r#   r$   r,   r%   r&   r-   r.   r/   r'   r(   r)   r0   s   &&&&&&&&&&&&&&&&ڃC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\reportlab/platypus/figures.pyr   Figure.__init__   s     	$
"&& 0 0$77K(. $&$    c                h   V P                   pV P                  pV P                  pV P                  pV P                  pV P
                  pV P                  pV P                  WW4WVV38w  d   WW4WVV3V n        \        V\        4      '       d	   Wn
        R# \        V\        4      '       do   \        R TTRV,          TTV P                  VR8X  d   \        MVR8X  d   \        M\         R7      V n        \        V P                   V P"                  4      V n
        R# \%        R\'        V4      ,          4      hR# )r   g333333?leftright)r   r   leading	textColor	backColorr.   r   z6Figure caption of type %r is not a string or ParagraphN)r"   r#   r$   r%   r&   r(   r)   r*   
isinstancer	   captionParar   r   r'   r   r   r   captionStyle
ValueErrortype)r2   r"   r#   r$   r%   r&   r(   r)   s   &       r4   r1   Figure._getCaptionPara:   s   ,,&&&&0000((..w;P`n}~~!([Rbp  !AD'),,#* GH--$2((O 0 0 $)5v)=g|]dOd8js
%! $-T\\4;L;L#M  !Y\`ah\i!ijj' r6   c                   V P                   '       d   V P                  4        V P                  P                  V P                  W P
                  ,
          4      w  r4W@P                  ,           V n        V P                  V P
                  ,           V n        W0P                  8  d   W0n        MV P
                  V n        V P                  R R\        39   d    RWP                  ,
          ,          V n        M6V P                  R\        39   d   WP                  ,
          V n        M^ V n        V P                  V P                  3# )r   CENTREr   RIGHT)r"   r1   r>   wrapr    r!   r'   r+   r3   r0   r   dxr   )r2   
availWidthavailHeightwhs   &&&  r4   rF   Figure.wrapW   s    <<<  "##(([CTCT5TUDA!"__!4D,,t/@/@@DK|!Z++DK;;8HY77Z**45DG[[WX.. ::-DGDG

DKK((r6   c                <   V P                   P                  V P                  ^ 4       V P                  '       d8   V P                  R8X  d'   V P                   P                  ^ V P
                  4       V P                  '       d   V P                  4        V P                  '       d   V P                  4        V P                   P                  4        V P                  4        V P                   P                  4        V P                  '       d   V P                  R8X  d)   V P                   P                  ^ V P
                  ) 4       M7V P                   P                  ^ V P                  V P                  ,           4       V P                  4        V P!                  4        R# R# )    r   N)canv	translaterG   r"   r)   r+   r,   drawBackgroundr-   
drawBorder	saveState
drawFigurerestoreStater!   r'   r1   drawCaptionr2   s   &r4   drawFigure.drawi   s   		DGGQ'<<<D00(:II4#5#56???!;;;OO				 <<<##X-		##A(:(:':;		##At'8'8'HI  " r6   c                    V P                   P                  V P                  ^ ^ V P                  V P                  4       R# rN   N)rO   drawBoundaryr-   r    r!   rW   s   &r4   rR   Figure.drawBorder|   s*    		t{{1Qtzz4;L;LMr6   c                    V P                   P                  4        V P                   P                  V P                  4       V P                   P	                  ^ ^ V P
                  V P                  ^R7       V P                   P                  4        R# )rN   )fillN)rO   rS   setFillColorr,   rectr    r!   rU   )r2   colors   &&r4   _doBackgroundFigure._doBackground   s\    				t/		q!TZZ):):C		 r6   c                    \        V P                  4      '       d   V P                  V P                  4       R#  \        V P                  4      pV P                  V4       R#     R# ; i)zFor 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)r   r,   rc   r   )r2   cs   & r4   rQ   Figure.drawBackground   sP     4??##t/DOO,""1%s   &A" "A'c                T    V P                   P                  V P                  ^ ^ 4       R# r[   )r>   drawOnrO   rW   s   &r4   rV   Figure.drawCaption   s    		1a0r6   c                    R # N rW   s   &r4   rT   Figure.drawFigure       r6   )r*   r,   r-   r"   r(   r&   r#   r'   r+   r>   r)   r$   r?   r%   rG   r!   r0   r3   r/   r.   r    )__name__
__module____qualname____firstlineno__r   r   r   r1   rF   rX   rR   rc   rQ   rV   rT   __static_attributes____classdictcell____classdict__s   @r4   r   r      se     .0+ ")'"2"& &!) Bk:)$&N!
1 r6   r   c           	      `   V P                  4       pR V,          pV P                  RRR4       V P                  W,           W&,
          W4^ ^R7       V P                  ^^R4       V P                  ^ 4       V P                  WW4^^R7       V P                  ^ ^ ^ 4       V P	                  ^ ^ ^ 4       R# )g?r   )stroker_   g?N)	beginPathsetFillColorRGBra   setLineWidthsetStrokeColorRGB)canvasxyr    r3   pthcorners   &&&&&  r4   drawPager      s    



C%ZF 3s3'
KK
AJaaKH 1Qs#

KKeAAK6 1Qq!
Qq#r6   c                   :   a  ] tR t^t o RtRR ltR tR tRtV t	R# )
PageFigurez_Shows a blank page in a frame, and draws on that.  Used in
illustrations of how PLATYPUS works.Nc                    \         P                  V ^\        ,          ^\        ,          4       RV n        \        V n        Wn        R# )   zFigure 1 - a blank pageN)r   r   r
   r"   r?   r,   )r2   r,   s   &&r4   r   PageFigure.__init__   s.    afaf-0($r6   c                    R # rl   rm   rW   s   &r4   drawVirtualPagePageFigure.drawVirtualPage   ro   r6   c                L   \        V P                  R \        ,          R\        ,          R\        ,          R\        ,          4       V P                  P                  R \        ,          R\        ,          4       V P                  P	                  RR4       V P                  4        R# )g      ?g      ?g      ?g      @Ngm?g	Q_?)r   rO   r
   rP   scaler   rW   s   &r4   rT   PageFigure.drawFigure   s`    E$JT	49c$hG		E$JT	2			9-r6   )r,   r"   r?   rl   )
rp   rq   rr   rs   __doc__r   r   rT   rt   ru   rv   s   @r4   r   r      s     ,% r6   r   c                   0   a  ] tR t^t o RtR tR tRtV tR# )PlatPropFigure1z$This shows a page with a frame on itc                >    \         P                  V 4       R V n        R# )z%Figure 1 - a page with a simple frameN)r   r   r"   rW   s   &r4   r   PlatPropFigure1.__init__   s    D!>r6   c                0    \        V P                  4       R # rl   )demo1rO   rW   s   &r4   r   PlatPropFigure1.drawVirtualPage   s    diir6   )r"   N)	rp   rq   rr   rs   r   r   r   rt   ru   rv   s   @r4   r   r      s     .? r6   r   c                   p   a  ] tR t^t o RtRR^]P                  ^^^^^	RRRR^3R ltR tR	 t	R
 t
RtV tR# )
FlexFigurezHBase for a figure class with a caption. Can grow or shrink in proportionNzHelvetica-Obliquer   topr   c                    \         P                  WW#VVR VV
VVVVVVR7       Wn        Wn        Wn        R V n        W@n        R # )N)r#   r$   r,   r%   r.   r/   r'   r(   r)   r0   r-   )r   r   shrinkToFit	growToFitscaleFactor_scaleFactorr,   )r2   r    r3   r"   r,   r#   r$   r%   r   r   r.   r/   r'   r(   r)   r   r0   r-   s   &&&&&&&&&&&&&&&&&&r4   r   FlexFigure.__init__   sZ     	V$/$/#')9&1%/#-%1(7%% 	 	 '"& $r6   c                4   V P                   e$   V P                  V8  g   V P                  V8  Edg   \        P	                  WV4      w  r4W@P
                  ,
          pV P                  f:   \        WP                  ,          W%,
          V P
                  ,          4      V n         MV P                  V n         V P                   ^8  d`   V P                  '       dN   V P                  V P                   ,          R,
          V n        V P
                  V P                   ,          V n        R# V P                   ^8  db   V P                  '       dN   V P                  V P                   ,          R,
          V n        V P
                  V P                   ,          V n        R# R# R# R# )z4Rescale to fit according to the rules, but only onceNg-C6?)
r   r    r3   r   rF   r!   r   minr   r   )r2   rH   rI   rJ   rK   r+   s   &&&   r4   _scaleFlexFigure._scale   s)   $

:(=[AX;;t=DA 1 11M'$'
::(={?XZ^ZkZk>k$l!$($4$4!  "t'7'7'7!ZZ$*;*;;fD
$($5$58I8I$I!""1$!ZZ(9(99FB
$($5$58I8I$I! *8$ BYr6   c                P    V P                  W4       \        P                  WV4      # rl   )r   r   rF   r2   rH   rI   s   &&&r4   rF   FlexFigure.wrap   s    J+{{4[99r6   c                P    V P                  W4       \        P                  WV4      # rl   )r   r   splitr   s   &&&r4   r   FlexFigure.split   s    J+||Dk::r6   )r   r,   r!   r   r   r   r    )rp   rq   rr   rs   r   r   r   r   r   rF   r   rt   ru   rv   s   @r4   r   r      sP     R:>$7A)/$%"#$&#%#$%-(-$(' %BJ":; ;r6   r   c                   4   a  ] tR t^t o RtRR ltR tRtV tR# )ImageFigurezImage with a caption below itNc                    \         P                  P                  V4      '       g   Q R V,          4       h^ RIHp V! V4      P                  4       w  rWn        \        P                  WWW4WVR7       R# )zimage file %s not found)ImageReader)r   r0   r-   N)	ospathisfilereportlab.lib.utilsr   getSizefilenamer   r   )
r2   r   r"   r,   r   r0   r-   r   rJ   rK   s
   &&&&&&&   r4   r   ImageFigure.__init__  s[    ww~~h''M)BX)MM'38$,,. DQ[apr6   c                    V P                   P                  V P                  ^ ^ V P                  V P                  4       R# r[   )rO   	drawImager   r    r!   rW   s   &r4   rT   ImageFigure.drawFigure  s.    		DMM"#Qtzz43D3D	Fr6   )r   )NNr   N	rp   rq   rr   rs   r   r   rT   rt   ru   rv   s   @r4   r   r      s     'qF Fr6   r   c                   4   a  ] tR tRt o RtRR ltR tRtV tR# )DrawingFigurei  z8Drawing with a caption below it.  Clunky, scaling fails.Nc                    \        W4      p\        Wb4      pV! 4       V n        \        P	                  V V P                  P
                  V P                  P                  VV4       ^V n        R# )   N)r   getattrdrawingr   r   r    r3   r   )r2   
modulename	classnamer"   baseDirr,   moduleklasss   &&&&&&  r4   r   DrawingFigure.__init__  sX     5*wD LL.. LL//#&		(
 r6   c                    V P                   P                  V P                  V P                  4       V P                  P	                  V P                   ^ ^ 4       R# r[   )rO   r   r   r   ri   rW   s   &r4   rT   DrawingFigure.drawFigure  s:    		))4+<+<=DIIq!,r6   )r   r   NNr   rv   s   @r4   r   r     s     B	- -r6   r   )restoreForms
storeFormsstoreFormsInMemoryrestoreFormsInMemoryc                   6   a  ] tR tRt o RtR tR tR tRtV t	R# )PageCatcherCachingMixIni)  z+Helper functions to cache pages for figuresc                    \         P                  P                  V4      w  r4\         P                  P                  V4      w  rVR WR3,          # )z	%s_page%d)r   r   r   splitext)r2   pdfFileNamepageNodirnamer   rootexts   &&&    r4   getFormName#PageCatcherCachingMixIn.getFormName,  s:     "k :G((2ID$//r6   c                
   V P                  W4      p\        P                  P                  VR,           4      '       dF   \        P                  ! VR,           4      ^,          p\        P                  ! V4      ^,          pWT8  # ^# )z&returns 1 if no forms or form is older.frm)r   r   r   existsstat)r2   r   r   formNameformModTime
pdfModTimes   &&&   r4   needsProcessing'PageCatcherCachingMixIn.needsProcessing2  sa    ''<Hww~~h/00 ggh&78;WW[1!4
"01r6   c                p    V P                  W4      p\        WR ,           VR,           V.R7       VR ,           # )r   _)prefixpagenumbers)r   r   )r2   r   r   r   s   &&& r4   
processPDF"PageCatcherCachingMixIn.processPDF<  s:    ''<H{v$5,4sN17: f$$r6   rm   N)
rp   rq   rr   rs   r   r   r   r   rt   ru   rv   s   @r4   r   r   )  s     5	0		% 	%r6   r   c                   4   a  ] tR tRt o RtRR ltR tRtV tR# )cachePageCatcherFigureNonA4iD  ?PageCatcher page with a caption below it.  Size to be supplied.Nc                h   \         P                  P                  V4      w  V n        V n        V P                  R 8X  d   \         P
                  V n        W n        V P                  V P                  V P                  4      R,           \        V4      ,           V n	        \        P                  WWSV4       R# )r   r   N)r   r   r   r   r   curdirr   r   strr   r   r   r2   r   r   r"   r    r3   r,   s   &&&&&&&r4   r   $cachePageCatcherFigureNonA4.__init__H  sx    *,''--*A'DL$-||r!!yy K ,,T]]DKKH3NQTU[Q\\DMVjIr6   c                   V P                   P                  4        V P                   P                  V P                  4      '       g   V P                  \
        P                  ,           V P                  ,           pV P                  WP                  4      R ,           pV P                  WP                  4      '       d   V P                  WP                  4       \        W P                   4      pV P                   P                  V P                  V P                  4       V P                   P                  V P                  4       V P                   P!                  4        R# )r   N)rO   rS   hasFormr   r   r   sepr   r   r   r   r   r   r   r   doFormrU   )r2   restorePathformFileNamenamess   &   r4   rT   &cachePageCatcherFigureNonA4.drawFigureP  s    II!99$$T]]33"llRVV3dmmC#//[[IFR''[[AAOOK=$\99=IIOOD--t/@/@AIIT]]+II""$r6   )r   r   r   r   rl   r   rv   s   @r4   r   r   D  s     M	J	% 	%r6   r   c                   .   a  ] tR tRt o RtRR ltRtV tR# )cachePageCatcherFigurei^  PageCatcher page with a caption below it.  Presumes A4, Portrait.
This needs our commercial PageCatcher product, or you'll get a blank.Nc           
     8    \         P                  WW#WEVR 7       R# ))r,   N)r   r   r   s   &&&&&&&r4   r   cachePageCatcherFigure.__init__a  s    '00RWlv0wr6   rm   )S  J  Nrp   rq   rr   rs   r   r   rt   ru   rv   s   @r4   r   r   ^  s     	Q	x 	xr6   r   c                   8   a  ] tR tRt o Rt/ tRR ltR tRtV t	R# )PageCatcherFigureNonA4id  r   Nc                   T;qn         W n        VP                  \        P                  R 4      P                  RR 4      P                  RR 4      P                  RR 4      P                  RR 4      pVP                  RR 4      R ,           \        V4      ,           R ,           V n        V P                  \        V4      ,           V n        Wpn        \        P                  WWSV4       R# )r   /\-:.N)r   r   replacer   r   r   r   r   cachingr   r   )	r2   r   r   r"   r    r3   r,   r  fns	   &&&&&&&& r4   r   PageCatcherFigureNonA4.__init__i  s    !))B KBFF3'//C8@@cJRRSVWZ[ccdghklB**S-c1#f+=cADK KK#f+5DM"LVjIr6   c                   V P                   P                  V P                  4      '       g   V P                  V P                  9   d!   V P                  V P                  ,          w  rM\        V P                  R 4      pVP                  4       pVP                  4        \        W0P                  .V P                  R7      w  rV P                  R8X  d   W3V P                  V P                  &   \        W P                   4      pV P                   P                  4        V P                   P                  V P                  V P                  4       V P                   P!                  V P                  4       V P                   P#                  4        R# )rb)r   r   memoryN)rO   r   r   r   _cacheopenreadcloser   r   r   r  r   rS   r   r   r   rU   )r2   fdatapdfs   &   r4   rT   !PageCatcherFigureNonA4.drawFigurer  s   99$$T]]33==DKK/![[7FAdT]]40A&&(CGGI0;;-X\XcXcdGA||X-56WDMM2(yy9II!IIOOD--t/@/@AIIT]]+II""$r6   )r  r   r   r   r   r   )
rp   rq   rr   rs   r   r  r   rT   rt   ru   rv   s   @r4   r   r   d  s     M 	J	% 	%r6   r   c                   .   a  ] tR tRt o RtRR ltRtV tR# )PageCatcherFigurei  r   Nc                8    \         P                  WW#WEWgR 7       R# ))r,   r  N)r   r   )r2   r   r   r"   r    r3   r,   r  s   &&&&&&&&r4   r   PageCatcherFigure.__init__  s    "++DFUgq+  Dr6   rm   )r   r   NNr   rv   s   @r4   r  r    s     	Q	D 	Dr6   r  c                     \        ^\        ,          ^\        ,          ^\        ,          ^\        ,          ^R7      p\        R\        ^^^R7      p\	        RV4      p\	        RV4      pW4.pVP                  WP4       R# )   showBoundaryBody)r   r   r:   r.   NziSpam spam spam spam. Spam spam spam spam. Spam spam spam spam. Spam spam spam spam. Spam spam spam spam. zPEggs eggs eggs. Eggs eggs eggs. Eggs eggs eggs. Eggs eggs eggs. Eggs eggs eggs. )r   r
   r   r   r	   addFromList)r~   frame	bodyStylepara1para2mydatas   &     r4   r   r     sr    dFdFdFdF#$E vTVdefI19=E,i8E^F 
f$r6   c                     \        R 4      p \        \        \        ^\        ,          ^	\        ,          ^R7      p\        4       p\	        R4      Vn        \	        R4      Vn        VP                  V.V 4       V P                  4        R# )zfigures.pdfr  bluelightyellowN)	r   r   r
   r   r   r%   r&   r  save)rf   r  vs      r4   test1r)    s`    		AdD!D&!D&q9AA A /AMM1#aFFHr6   __main__)3r   __version__r   reportlab.libr   reportlab.pdfgen.canvasr   reportlab.lib.stylesr   r   r   r   reportlab.platypusr   r   r	   reportlab.lib.unitsr
   reportlab.lib.enumsr   r   r   reportlab.lib.validatorsr   reportlab.lib.colorsr   r   r   r?   r   r   r   r   r   r   r   rlextra.pageCatcher.pageCatcherr   r   r   r   _hasPageCatcherImportErrorr   r   r   r   r  r   r)  rp   rm   r6   r4   <module>r7     s+   G 	   * / 9 $ ' ( $ < < , ( >i.2Ybc}X }~$$ $j :; :;xF* F-J -"rrO % %6%j2I %4x!< x% %>D2 D%" z	G G  Os   +D 	DD