+
    bIi;                        R t Rt^ RIHt ^ RI5 ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHtHtHt ]
P                   3R lt ! R	 R
]4      t^ RIHt  ! R R]4      tR]
P                   ^3R ltR]
P                   ^3R ltRR lt]R8X  dG   ]! RR7       ^ RIt]! ]P8                  4      ^8  d   ]P8                  ^,          tMRt]! ]RR7       R# R# )z3.3.0zRender Drawing objects within others PDFs or standalone

Usage::
    
    import renderpdf
    renderpdf.draw(drawing, canvas, x, y)

Execute the script to see some test drawings.
changed
)BytesIO)*)Canvas)stringWidth)	rl_config)RenderergetStateDeltarenderScaledDrawingSTATE_DEFAULTSc                T    \        4       pVP                  \        V 4      WW4R7       R# )z
As it saysshowBoundaryN)_PDFRendererdrawr	   )drawingcanvasxyr   Rs   &&&&& څC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\reportlab/graphics/renderPDF.pyr   r      s!    AFFw'AFQ    c                   ~   a  ] tR t^ t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tRtV tR# )r   zThis draws onto a PDF document.  It needs to be a class
rather than a function, as some PDF-specific state tracking is
needed outside of the state info in the SVG model.c                "    ^ V n         ^ V n        R#     N)_stroke_fillselfs   &r   __init___PDFRenderer.__init__%   s    
r   c                   \        V\        4      '       d   VP                  '       g   V P                  P	                  4        \        V4      pV P                  P                  V4       V P                  V/ 4       V P                  V4       V P                  P                  4        \        V\        4      '       d   VP                  '       g   V P                  P                  4        R# R# )z=This is the recursive method called for each node
in the treeN)
isinstancePath
isClipPath_canvas	saveStater   _trackerpushapplyStateChangesdrawNodeDispatcherpoprestoreState)r   nodedeltass   && r   drawNode_PDFRenderer.drawNode)   s    
 4&&4???LL""$ t$6"vr* 	%4&&4???LL%%' ,;r   c           
        VP                   VP                  u;8X  d   ^ 8X  dc   M M_V P                  P                  VP                  VP
                  VP                  VP                  V P                  V P                  R7       R# V P                  P                  VP                  VP
                  VP                  VP                  VP                   V P                  V P                  R7       R# )r   strokefillr4   r3   N)rxryr%   rectr   r   widthheightr   r   	roundRect)r   r8   s   &&r   drawRect_PDFRenderer.drawRect=   s    77dgg""LLFFDFFJJ<<	   LL""FFDFFJJTWW<<	 # r   c                F   VP                   pV'       d   \        VR 4      '       g0   \        P                   P                  VP                   4      '       dJ   V P                  P                  VVP                  VP                  VP                  VP                  4       R# R# R# )modeN)
pathhasattrosexistsr%   drawInlineImager   r   r9   r:   )r   imager@   s   && r   	drawImage_PDFRenderer.drawImageP   sg    zzWT&))RWW^^EJJ-G-GLL((GGUWWKK .H4r   c                    V P                   '       dI   V P                  P                  VP                  VP                  VP
                  VP                  4       R # R # N)r   r%   linex1y1x2y2)r   rJ   s   &&r   drawLine_PDFRenderer.drawLineZ   s8    <<<LLdggtwwA r   c                    V P                   P                  VP                  VP                  VP                  V P
                  V P                  R 7       R# r5   N)r%   circlecxcyrr   r   )r   rS   s   &&r   
drawCircle_PDFRenderer.drawCircle^   s:    LLIIvyy&((<<   r   c                   V P                   '       d   \        VP                  4      ^8  g   Q R4       hVP                  R,          VP                  R,          r2V P                  P	                  4       pVP                  V^ ,          V^,          4       \        ^ \        V4      ^4       F(  pVP                  W5,          W5^,           ,          4       K*  	  V P                  P                  V4       R# R# )   #Polyline must have 2 or more pointsr   rZ   NrZ   NNN)	r   lenpointsr%   	beginPathmoveTorangelineTodrawPath)r   polylineheadtailr@   is   &&    r   drawPolyLine_PDFRenderer.drawPolyLinee   s    <<<x'1,S.SS,!-xr/B$<<))+DKKQa)1c$i+DGTA#Y/ ,LL!!$' r   c                @   VP                   '       d"   V P                  VP                  4       4       R # VP                  VP                  VP
                  VP                  VP                  3w  r#rEpVP                  4       w  rxp	Vf   TpWe,
          p
V P                  P                  4       pV^ 8X  g   VfK   V	^ 8X  g   V	f@   VP                  W#4       VP                  W$,
          W7,
          W$,           W7,           WZ4       M[VP                  W$,
          W7,
          W$,           W7,           WZ4       VP                  W(,
          W9,
          W(,           W9,           Wj) 4       VP                  4        V P                  P                  VV P                  V P                   R7       R # )Nr5   )annularrd   	asPolygoncenterxcenteryradiusstartangledegreesendangledegrees
_xtraRadiir%   r`   ra   arcToarccloser   r   )r   wedgern   ro   rp   rq   rr   yradiusradius1yradius1angler@   s   &&          r   	drawWedge_PDFRenderer.drawWedgeo   s>   ===MM%//+, ]]EMM5<<9P9PRWRgRgg IGf).)9)9);&Gh&#5E<<))+D
goHaK8CSG-

7>7?GNGO(1 '.'/(1

7?G,<gowO_&0JJLLL!!$!ZZ#|| " r   c           	     T   VP                   VP                  ,
          pVP                   VP                  ,           pVP                  VP                  ,
          pVP                  VP                  ,           pV P                  P                  W$W5V P                  V P                  R 7       R# rR   )rT   r6   rU   r7   r%   ellipser   r   )r   r   rK   rM   rL   rN   s   &&    r   drawEllipse_PDFRenderer.drawEllipse   sm    ZZ'**$ZZ'**$ZZ'**$ZZ'**$R2djjMr   c                   \        VP                  4      ^8  g   Q R4       hVP                  R,          VP                  R,          r2V P                  P                  4       pVP	                  V^ ,          V^,          4       \        ^ \        V4      ^4       F(  pVP                  W5,          W5^,           ,          4       K*  	  VP                  4        V P                  P                  VV P                  V P                  R7       R# )rZ   r[   r\   r]   r2   N)r^   r_   r%   r`   ra   rb   rc   rv   rd   r   r   )r   polygonrf   rg   r@   rh   s   &&    r   drawPolygon_PDFRenderer.drawPolygon   s    7>>"a'N)NN'^^C('..*<d||%%'DGT!W%q#d)Q'AKKc+ (

 #'<<!% 	 	r   c           	        \        VR ^ 4      pVR9   pVR9   pV P                  '       d	   V'       g   V P                  '       Ed   V'       Ed    V P                  P	                  4       pVR,          VP
                  VP                  VP                  VP                  3w  rgrp
VR9   g|   VR,          VR,          r\        WW4      pVR8X  d
   W},          pMNVR8X  d   W}R,          ,          pM7VR8X  d   V\        WiWW4      ,          pM\        R\        V4      ,           4      hV P                  P                  YxY;'       g    R	R
7       R	# R	# R	# )textRenderMode
textAnchorfontNamefontSizeendmiddleg      ?numericzbad value for textAnchor N)r?   )r   rZ         )   rZ      r   )start	inherited)getattrr   r   r'   getStater   r   textencodingr   numericXShift
ValueErrorstrr%   
drawString)r   	stringObjr   needFill
needStrokeStext_anchorr   r   r   encfont	font_sizetextLens   &&            r   r   _PDFRenderer.drawString   s    +;A>!Y.#y0
JJJ8**&&(A+,\?IKK	T]TbTbdmdvdv+v(KAS"77"#J-:i%d)A%LA (*$A )+{YSSA$%@[AQ%QRRLL##A$5K5Kt#L ;Er   c                   ^ RI Hp V P                  P                  4       pVP                  VP
                  VP                  VP                  3p\        VRR4      pV P                  pV P                  pT! YT;'       d    VR8H  R7      pV P                  P                  p	VP                  '       d   V P                  P                  MT	p
\        VRR4      pVR8X  d<   V'       d(   V'       d    V'       g   V
! W6^ R	7       V	! W7^ VR
7       R# V
! W6W{R7       R# VR8X  d   V
! W6W{R7       R# V'       g   ^ pV
! W6W{R7       R# )r   )_renderPath	autoclose pdf)
forceClosefillModeNsvgr5   )r3   r4   r   )r4   r3   r   )reportlab.graphics.shapesr   r%   r`   ra   rc   curveTorv   r   r   r   rd   r$   clipPath)r   r@   r   pdfPath	drawFuncsr   r4   r3   isCloseddPcPr   s   &&          r   rd   _PDFRenderer.drawPath   s    9,,((*^^W^^W__gmmT	DR0	zzt4;T;TIuDTU\\""&*oooT\\""24
40ex7a07HE7fHw&D w&Dr   c                <    V P                   P                  V4       R # rI   )r%   setStrokeColorr   cs   &&r   r   _PDFRenderer.setStrokeColor   s    ##A&r   c                <    V P                   P                  V4       R # rI   )r%   setFillColorr   s   &&r   r   _PDFRenderer.setFillColor   s    !!!$r   c           
        \         P                  '       d   \        VP                  4       4      MVP                  4        EF#  w  r4VR8X  dM   V P                  P                  V^ ,          V^,          V^,          V^,          V^,          V^,          4       KY  VR8X  d(   Vf
   ^ V n        Km  ^V n        V P                  V4       K  VR8X  d   V P                  P                  V4       K  VR8X  d   V P                  P                  V4       K  VR8X  d   V P                  P                  V4       K  VR8X  d   V'       d   \        V\        \        34      '       dG   \        V4      ^8X  d7   \        V^,          \        \        34      '       d   V^ ,          pV^,          pM^ pV P                  P                  WE4       EK  V P                  P                  4        EK  VR8X  d*   Vf   ^ V n        EK  ^V n        V P#                  V4       EK  VR9   dk   VP%                  R
V P                  P&                  4      pVP%                  R	V P                  P(                  4      pV P                  P+                  Wg4       EKB  VR8X  d&   Ve   V P                  P-                  V4       EKk  EKn  VR8X  d&   Ve   V P                  P/                  V4       EK  EK  VR8X  d   V P                  P1                  V4       EK  VR8X  d   V P                  P3                  V4       EK  VR8X  d   V P                  P5                  V4       EK	  VR8X  g   EK  W@P                  n        EK&  	  R# )zXThis takes a set of states, and outputs the PDF operators
needed to set those properties	transformstrokeColorNstrokeWidthstrokeLineCapstrokeLineJoinstrokeDashArray	fillColorr   r   fillOpacitystrokeOpacityfillOverprintstrokeOverprintoverprintMaskr   )r   r   )r   	invariantsorteditemsr%   r   r   r   setLineWidth
setLineCapsetLineJoinr"   listtupler^   setDashr   r   get	_fontname	_fontsizesetFontsetFillAlphasetStrokeAlphasetFillOverprintsetStrokeOverprintsetOverprintMask	_fillMode)r   deltanewStatekeyvaluephasefontnamefontsizes   &&&     r   r)   _PDFRenderer.applyStateChanges   s    5>4G4G4G6%++-0U[[]ZJCk!&&uQxq58!&q58U1X?% =#$DL#$DL''.%))%0'''.((((/ ))!%e55#e*a-JW\]^W_afgk`lLmLm %a %a !LL((5LL((*# =!"DJ!"DJ%%e,00 !99Z1G1GH 99Z1G1GH$$X8m#$LL--e4 %o%$LL//6 %o%--e4''//6o%--e4j).&y [r   )r   r   N)__name__
__module____qualname____firstlineno____doc__r   r/   r<   rF   rO   rW   ri   r|   r   r   r   rd   r   r   r)   __static_attributes____classdictcell____classdict__s   @r   r   r       s^     :((&B(2NM*E2'%?/ ?/r   r   )Flowablec                   0   a  ] tR tRt o RtR tR tRtV tR# )GraphicsFlowablei  z'Flowable wrapper around a Pingo drawingc                ~    Wn         V P                   P                  V n        V P                   P                  V n        R # rI   )r   r9   r:   )r   r   s   &&r   r   GraphicsFlowable.__init__  s)    \\''
ll))r   c                J    \        V P                  V P                  ^ ^ 4       R# r   )r   r   canvr   s   &r   r   GraphicsFlowable.draw  s    T\\499a+r   )r   r:   r9   N)	r   r   r   r   r   r   r   r   r   r   s   @r   r   r     s     1*
, ,r   r   r   c                   \        V 4      p R F<  pRV,           p\        WVP                  V\        RV,           ,          4      4      WW&   K>  	  VP                  RR4      p\	        V3/ VB p	V'       d4   V	P                  \        P                  ^$4       V	P                  ^PRV4       V	P                  V4       V'       d8   V	P                  V P                  V P                  34       \        W	^ ^ VR7       MDV	P                  \        P                  ^4       Rp
^pWP                  ,
          p
\        W	^PWR7       V'       d)   ^ RIHp V! VR	7      V	P                   P"                  n        V	P'                  4        V	P)                  4        \*        P,                  R
8X  dR   \/        VR4      '       g>    ^ RIp^ RIpVP5                  V4      P7                  RR4       VP9                  V4       R# R# R#     R# ; i)zMakes a one-page PDF with just the drawing.

If autoSize=1, the PDF will be the same size as
the drawing; if 0, it will place the drawing on
an A4 page with a title above it - possibly overflowing
if too big.initialFontr   metadataPathN  r     )XMP)r@   macwriteCAROzPDF )NameSize)r	   r   r+   r
   r   r   r   defaultGraphicsFontNamer   setTitlesetPageSizer9   r:   r   reportlab.pdfbase.pdfdocr   _docCatalogMetadatashowPagesavesysplatformrA   macfs
macostoolsFSSpecSetCreatorTypetouched)dfnmsgr   autoSizekwdsr   ar   r   r   rh   r   r  r  s   &&&&&,         r   
drawToFiler    s}    	AA!O!dhhqq)ABC  88N40LrDA
			)33R8	Rc"JJsO	qww)*Q1al3 	
		)33R8LQ2q40"%<"8JJLFFH
||U72w#7#7	$LL++FF;r"	 $8
	s   3:G3 3G8c           	     Z    \        4       p\        W3RVRVRV/VB  VP                  4       # )z>Returns a PDF as a string in memory, without touching the diskr  r   r  )r   r  getvalue)r  r  r   r  r  ss   &&&&, r   drawToStringr  H  s1    	AqRR<RRTR::<r   pdfoutc                    ^ RI HpHp ^ RIHp ^ RIpVP                  P                  V 4      '       g   VP                  V 4       TP                  P                  V R4      p\        V4      pVP                  V^$4       VP                  ^PRR4       ^ RIHp . p	\        V4       FD  p
V
R,          R	8X  g   K  \!        W4      pV! 4       p\!        VR
R4      pV	P#                  W34       KF  	  VP                  V^4       Rp^pV	 F  w  rVf   Q RV,          4       hVR8  d   VP%                  4        RpV^,
          pVP                  V^4       VP                  ^PVRV,          4       VP                  V^4       V^,
          pVP'                  ^PV4      pVP)                  V4       VP+                  V4       VP-                  4       pWP.                  ,
          p\1        W^PV4       V^,           pK  	  VR8w  d   VP%                  4        VP3                  4        V'       g   V^8  d   \5        R\7        V4      ,          4       R# R# )r   )_baseGFontName_baseGFontNameBI)verboseNzrenderPDF.pdfr   zGraphics Test)
testshapes:r   
   N
getDrawingr   r   r   zDrawing %d has no docstring!i,  z
Drawing %dzsaved %s)r   r   r!  reportlab.rl_configr"  rB   r@   isdirmkdirjoinr   r   r   reportlab.graphicsr#  dirr   appendr
  	beginText	textLinesdrawTextgetYr:   r   r  printascii)outDirshoutr   r!  r"  rB   r  r   r#  drawingsfuncnamefuncr   	docstringr   rh   textObjs   &&               r   testr:  T  s   J+77==  
	f_	-Br
AIInb!LLS/* .H
OD>\):/DfGYr2IOOW01 $ IInb!A	A (%J(F(JJ%s7JJLAF			"2&	RL1,-			.$F++b!$)$	

7LLNWQE# !)$ 	#vqzz|FFH	j59$% r   __main__T)r4  N)r  F)__version__r   ior   r   reportlab.pdfgen.canvasr   reportlab.pdfbase.pdfmetricsr   	reportlabr   reportlab.graphics.renderbaser   r   r	   r
   _unset_r   r   reportlab.platypusr   r   r  r  r:  r   r  r^   argvoutdir r   r   <module>rG     s    		  ' * 4  f f .7->-> R
q/8 q/f (,x , 9+<+<q (T ):):A 2&h Zt
388}Q!d r   