
    Q?hj                     $   S r SrSSKJrJr  SSK7  SSK7  SSKJr  SSK	J
r
JrJrJrJrJr  SSKJr  SSKJrJrJrJr  SS	KJr   " S
 S\5      r " S S\5      r " S S\5      r " S S5      r " S S\5      r/ SQ4S jr\S:X  a  \" 5         gg)z3.3.0zGenerate ReportLab logo in a variety of sizes and formats.


This module includes some reusable routines for ReportLab's
 'Corporate Image' - the logo, standard page backdrops and
 so on - you are advised to do the same for your own company!    )inchcm)*)DecimalFormatter)
definePathGroupDrawingRectPolyLineString)Widget)ColorblackwhiteReportLabBlue)stringWidthc                   .   \ rS rSrSr\" S70 S\" \S5      _S\" \S5      _S\" \S5      _S	\" \S
5      _S\" \S5      _S\" \S5      _S\" \SS9_S\" \SS9_S\" \SS9_S\" \	SS9_S\" \SS9_S\" \SS9_S\" \SS9_S\" \SS9_S \" \
" \\" \S!S!S"945      S#S9_S$\" \S%S9_S&\" \S'S9_S(\" \" \
" \\" \S!S!S"945      5      S)S9_S*\" \" \
" \\" \S!S!S"945      5      S+S9_S,\" \" \5      S-S9_6rS. rS/ rS0S0S1S2\S1S14S3 jr\S4 5       rS5 rS6rg1)8RL_CorpLogo   z;Dinu's fat letter logo as hacked into decent paths by RobinxzLogo x-coordyzLogo y-coordanglezLogo rotationstrokeColorzLogo lettering stroke color	fillColorzLogo lettering fill colorstrokeWidthzLogo lettering stroke width
backgroundzLogo background color)descborderzLogo border colorborderWidthzLogo border width (1)shadowz,None or fraction of background for shadowingwidthz)width in points of the logo (default 129)heightz)height in points of the logo (default 86)skewXzx-skew of the logo (default 10)skewYzy-skew of the logo (default 0)showPage   )lohiz7If true or (true(top),true(bottom)) show the page linesxFlipzIf true do x reversalyFlipzIf true do y reversaloColorsz1None or fill/stroke colors for the o in ReportLab
pageColorsz/None or fill/stroke colors for the page outlineprecz-None or precision negative means strip excessc                 ,   [         U l        S U l        SU l        [        U l        S U l        SU l        SU l        SU l	        SU l
        S=U l        =U l        =U l        =U l        U l        SU l        SU l        SU l        S U l        S U l        S U l        g )	N皙?         ?V      r   
   g     A@)r   r   r   r   r   r   r   r   r    r"   r!   r   r   r   r$   _dxr#   _dyr%   r+   r,   r-   selfs    D/var/www/html/env/lib/python3.13/site-packages/reportlab/lib/corp.py__init__RL_CorpLogo.__init__.   s    '
?@@@@$*@tzDH
	    c                 h    [        U R                  U R                  5      nUR                  U 5        U$ Nr	   r!   r"   addr8   Ds     r9   demoRL_CorpLogo.demo@   &    DJJ,	dr<   r   Nr/   c	                    / SQn	/ SQn
U R                   n/ nU(       aM  [        U5      (       d  X4nUS   (       a  UR                  / SQ5        US   (       a  UR                  / SQ5        U(       a<  U R                  XR                  5      n	UR                  [        XS   XWS   X#S95        OX-  n
U R                   (       aC  U(       a<  U R                  XR                  5      nUR                  [        XS   XXS   X#S95        OX-  n
U R                  XR                  5      n
UR                  [        XXVX#S95        g )N))moveTo"O@
cA@)curveTorH   gT@gCQON@gG8-xW@gı.nN@g:]?)rJ   ga wM@gn?gM2rL@BѿgyK@rK   )rJ   g7~J@rK   g7l[٨I@
ϛ?gǺ	I@cbqm?)rJ   gO@akH@g+	@)^H@<7@rN   {丳@)rJ   rN   g3.!@gK7mH@g㈵ %@gףp=
I@Ƒ'@)rJ   gCVI@3'*@gPfJ@m9r+@gh|?K@rS   )rJ   gDL@rS   gdCM@g}y)*@gDN@g '@)rJ   gʉvN@gfL2r%@rH   gEɀ!@rH   rI   	closePath)rG   ]L@rP   )rJ   rU   gT:X@gw/YL@gZK}@gVeOL@gmn @)rJ   gXeSFL@g%: @gx]8L@g_YiR!@gqm'L@g͒ 5"@)rJ   gJhL@gŧ "@g+ L@g* #@gmK@7T7q#@)rJ   g̯K@g#@g<K@b('#@gΪVK@rW   )rJ   g	8XK@rW   rm'K@goeQ#@jjZK@gVy"@)rJ   f,J@gy!@[ɎJ@g9@0@r[   'o|@)rJ   r[   gj+@rZ   gZ!@rY   gNw(
t@)rJ   rX   gR"@g)^XK@	@g'1K@r]   )rJ   grPLK@r]   g:]K@g@g4R%L@g,H3Mg@)rJ   gףp=
KL@g/n@rU   gW	3@rU   rP   rT   ))rG   g\mr/@r   )lineTogME*"@r   )r^   gDL$z@gE$]3Y@)rJ   gZ{,}@gǺ@gc#K@g"Tm@gۊe@g.Q50@)rJ   g =@g_@g7g@g`@gWCK@6T@)r^   a)@r\   )r^   r`   r   )r^   U7?r   )r^   ra   13@)r^   gSr@rb   )rJ   gEB"@rb   g<	%@g&kԻ2@gʉv(@g|a2U1@)rJ   geI+@g{Fw0@"u|-@g4)-@rc   g_M)@)rJ   rc   gŬC9$@gU+~I+@g#J{/!@g4Op&@r_   rT   )rG   KhF@`$@)r^   göE@re   )rJ   gsx@re   g,`@gpB!%@gg @gm%@)rJ   g!@gSW>&@"uq"@g/
(@rf   gӂ}u)@)rJ   rf   gBS,@g 6qb @WV-@gWf,@rg   )r^   rd   rg   rT   )rG   .9@?2@)r^   gnLOXy>@gwN#@)rJ   g; >@gQy@g70V=@ge6H?gT7<@gԕ<?)rJ   g~W[;@g|wJ?gx#9@rK   "uq7@rK   )rJ   g'kC45@rK   g0r.4@gpZ?gt2@gNё\C?)rJ   g41@gk,	@aۢ0@g0AC@rk   gcz@)rJ   rk   gJ+6!@g{1@gUMu$@gE_2@gܝ^'@)rJ   g|=4@gvR~*@gՐ5@\tYLl+@gFv7@rl   )rJ   gSW>:@rl   g
p;@gs,&6*@gW2<@g0''@)rJ   g)t^>@gBs$@; >@gm!@rm   g8m4@)r^   g+p>@aۢ@)r^   gTƿϸ6@rn   )rJ   gS:6@g+@gg7@@rj   ro   )rJ   gZwgu8@ro   gM8@gB	\@rh   ri   rT   )rG   rCQ/9@L$z @)rJ   rp   g}8g4!@gb'9@g~7!@gW>9@gnض("@)rJ   gX0_9@g=$@}"@gs.Ue8@Fv"@gd,8@gx@$#@)rJ   gKu8@rV   ge18@g#@gui8@g|~!<#@)rJ   g}˜.A8@g$@g8@>"D$@g7@rs   )rJ   gk) ƃ7@rs   g$37@gZd#@guV6@g	(#@)rJ   gS
c6@g1"@bg6@ght!@rt   rq   rT   )rG   tgy.C@bg
)r^   _i@@rv   )r^   rw    dF*@)r^   ru   rx   )r^   {IcC@gQy'@)rJ   g3<C@gYni5$'@g U+ZC@g^/(@g"DxC@gE$]3)@)rJ   gx]C@g,eX)@N^C@g{Nz*@g]ʾC@2ZGUt*@)rJ   gV	C@ge-*@g%D@g"2+@g`MD@g.16+@)rJ   gtYLlvD@gXV^+@g+ٱD@rS   gE*-D@rS   )rJ   g>E@rS   g"F@rR   g U+F@rQ   )rJ   g~nG@gg?R%@AG@g:!@r|   +j0@)rJ   r|   rO   g\m
G@gIh˹@ga2U0*F@rM   )rJ   g1F@rL   gsE@rK   g4cD@rK   )rJ   g4R5D@rK   g&SC@g8P?ry   g[K<?)rJ   gꕲq$C@y?gy@e'C@gϸp ?giW!')C@g	h"lx?)rJ   gd,C@g)"*?ru   g//>:?ru   gR!uٿrT   )rG   k+cD@KRe@)rJ   r   gU+~@gekUD@gRDU @g)8D@g'UH!@)rJ   gĬD@gQfL2"@g,`C@'IL>#@g:C@r   )rJ   g=
PC@r   p1=C@g[닄\!@r   gPp3@)rJ   r   gʾ+@gCVzNNC@Oz1S@rz   r   )rJ   geC@r   g0ACD@gDذ@gڧ5D@gW}W@)rJ   g[ɎTD@ge-@r   g_v@r   r   rT   )rG   JRrQ@r   )r^   p=
P@r   )r^   r   rx   )r^   r   rx   )r^   gH_Q@gP%@)rJ   g$#gaQ@gn)@gBQ@焁Å+@OIiR@r   )r^   r   gʡU @)rJ   gt^BR@g	c @g!R@Bxq:!@gT gR@r   )rJ   gaQ@r   gbgQ@gXL @g}iƘQ@g[B>ٌ@)rJ   gZ Q@g*g@r   ga@r   gQy@rT   )rG   (ycT@r   )r^   R, S@r   )r^   r   rr   )r^   MbXR@rr   )r^   r   rx   )r^   r   rx   )r^   r   |~!d1@)r^   r   r   )r^   r   rx   )r^   	T@rx   )r^   r   rr   )r^   r   rr   rT   )rG   ZW@r   )r^   2}EU@r   )r^   r   rb   )r^   <IfV@rb   )r^   r   4ir@)r^   r   r   rT   )rG   ',[@r   )r^   }"Z@r   )rJ   gU0* Z@g~?gao"Z@g|,}?gn4$Z@g?ܵ|?)rJ   g%Z@g?g'Z@gec] @gd)Z@g䠄@)rJ   gg67Y@g[tYL?gRY@rK   g"2Y@rK   )rJ   gŊLX@rK   g dFX@g?g	]X@gz6>W?)rJ   gWL)X@gTގ@Nw(
X@g1%e@r   gr?@)rJ   r   g-#!@g7*X@godC%@glV}`X@gj+'@)rJ   gR,X@gdp4*@gH.X@rS   g<;Y@rS   )rJ   g鲘Y@rS   g!A	3Y@gIh˹)@gME*!Z@grm&@)rJ   g
.V` Z@g0G&@g9}Z@g?'@gw;SZ@gh~'@)rJ   gMZ@gXeS'@g<Z@gޓZ'@r   ge(@)r^   k}ЖZ@g\mŮ)@)r^   g?Z@rx   )r^   r   rx   rT   )rG   r   	h"@)rJ   r   gN@g<DZ@gCK:@gJ8Z@g0ACO @)rJ   gEaZ@gQ|!@gqtZ@g7̒!@g[%XZ@gP0A"@)rJ   g鷯Z@gs"@g3P>Y@g1PN"@g$bJ$Y@gh"@)rJ   gt{IcY@gؙB%#@g"-Y@r   gpWY@r   )rJ   gA&9Y@r   0r.uY@g(\ @r   g,C@)rJ   r   g6ُ@g2Y@_)Ǻ@guY@r   )rJ   gPkY@r   r   g7l@r   r   rT   )rG   gypw]@r   )r^   Ǻ$\@r   )r^   r   W}W4@)r^   #]@r   )r^   r   gJF+@)rJ   r   gd**@gɎ@]@g{Nz(@g,g~5]@gs^&@)rJ   g*5{]@gs,&6(@g|S]@g_)@g:KT]@r{   )rJ   gQ^@g|+@g1|DL0^@rS   gOed^@rS   )rJ   g^@rS   gHK_@g[rP2*@g{1D_@gĔH'@)rJ   gK8y_@gi:;5%@lV}_@g2r!@r   gvZ@)rJ   r   gOGɫ@gmy_@gbb@gIB_@g=\rܩ?)rJ   gGɫs_@K7?gpn^@rK   gm/`^@rK   )rJ   g}"O2^@rK   gX
^@g=~oӿg<If]@gBsF?)rJ   g0|]@r   g	h"]@g4)^?g|гY]@ga?)rJ   gq>?]@g$+?g ]@r~   r   g,&6?)rJ   g{]@gR?gV-]@g{Ic*?g|G]@gK7A`?)rJ   gu݈]@gf?gZBs]@g ?g!7]@gP?rT   )rG   }iƢ%^@r}   )rJ   r   g;f?!@g_^@痐z6+#@g֨ht]@r   )rJ   g-l]@r   5{]@g\Z!@r   gm9r@)rJ   r   g%#gaO@gHIO]@rCQ@g\r)]@r   )rJ   g#Jv^@r   r   g@r   r}   rT   r   ))rG   WVZ@@%e-@)r^   r   GG@)r^   gr3܀	T@r   )r^   /
ҌV@g$]3B@)r^   r   X94@)r^   玒WJU@r   )r^   r   bg>@)r^   .jR@r   )r^   r   ;)E@)r^   W	3'C@r   )r^   r   r   rT   )rG   rhS@%ǝ)B@)r^   r   r   )r^   r   r   rT   r0   )	)rG   r   VC")r^   r   LqUw9)r^   r   r   )r^   r   箞7>)r^   r   r   )r^   r   Բ&?)r^   r   r   )r^   r   r   rT   )r   r   r   dxdy)r%   isSeqextend	applyPrecr-   r@   r   )r8   gr   r   r   r   r   _ocolors_pagecolorsOPPr%   PPs                r9   
_paintLogoRL_CorpLogo._paintLogoE   s    q	 ==??$.{		  s  t{		  U  V99-BEE*RQKKcdZejltuGA==[99-BEE*RN{ij]kprz{GANN1YY'	j{cemnr<   c                 .   Uc  U $ / R                   n[        US9nU  Hj  n[        U5      (       aO  / R                   nU H1  n[        U[        5      (       a  [	        U" U5      5      nU" U5        M3     UR
                  nU" U5        Ml     UR
                  $ )N)places)appendr   r   
isinstancefloat__self__)r   r-   Rfpnes          r9   r   RL_CorpLogo.applyPrecj   s    <IID)AQxxIIA!!E**!!A$KaD  JJaD  zzr<   c                    U R                   nU R                  n[        5       nU R                  nU R                  nU R
                  nU R                  nU R                  U R                  pU(       aY  UbD  SUs=::  a  S:  a7  O  O4[        UR                  U-  UR                  U-  UR                  U-  5      nU R                  USSUS9  U R                  X1UU R                  =(       d    S U R                  =(       d    S S9  UR!                  U R"                  U R$                  S9  UR'                  U R(                  U R*                  5        [        5       n
U
R-                  U5        Su  pU R.                  U R0                  pU(       d  U(       a$  U(       a  U
R3                  S[5        SSXXEUS	95        X:w  d  X:w  a*  U
R7                  U[9        U5      -  U[9        U5      -  5        U R:                  nU R:                  (       a?  US
-  US
-  pU
R'                  U* U* 5        U
R=                  U5        U
R'                  X5        [?        U SS5      =(       a    S=(       d    Sn[?        U SS5      =(       a    S=(       d    SnU(       d  U(       aL  U=(       d    SnU=(       d    SnU
R'                  UU-  UU-  -   UU	-  UU-  -   5        [        U
USSUSS4S9n
U
$ U
R'                  X5        U
$ )Nr   r0         r&   )r   r   r   )r   r   r   r   kxky)r3   r2   )r   r   r   g       @r)   r*   )	transform) r   r   r   r   r   r   r    r   r   r   redgreenbluer   r+   r,   skewr#   r$   shiftr5   r6   r@   r!   r"   insertr
   scaler   r   rotategetattr)r8   r   r   r   bgbdbdwr    r   r   G_w_hwhr   r)   r*   sxsys                       r9   drawRL_CorpLogo.drawz   sN   NN	&&G__[[vvtvv1!akkrvvf}RXXf_RWWV^LOOA!fO=+-$//:QT 	 	S	$**,	"G	azz4;;1"HHQtAacRS5AE1771U2Y;qr{;

::R42qGGQBrNHHUOGGALWQ'.B3!WQ'.B3!E!B!BGGBqD5LAeAg.a2a"Qq/2A  GGALr<   )r5   r6   r   r   r   r   r   r"   r+   r,   r-   r    r%   r#   r$   r   r   r!   r   r    )__name__
__module____qualname____firstlineno____doc__AttrMapAttrMapValueisNumberisColorOrNoneisNumberOrNoneEitherOr	isBoolean
SequenceOfNoneOrisColorisInt_attrMapr:   rC   r   r   staticmethodr   r   __static_attributes__r   r<   r9   r   r      s   E 
.1
.1
 Xo6
 #=2OP	

 !0KL
 #8,IJ
 "-5LM
 m1DE
 #81HI
 n2`b
 X,WX
 h-XY
 X,MN
 X,LM
  )JyAQR4S)T U  ]V  W
  Y-DE!
" Y-DE#
$ vh
=TUYZ8[/\&]^  eX  Y%
& "&7:mWX\];^2_)`"a  hY  Z'
( F5M/^_)
H.$
  !QDcUZeiw{ #oJ  (r<   r   c                       \ rS rSrS rSrg)RL_CorpLogoReversed   c                 Z    [         R                  U 5        [        U l        [        U l        g r>   )r   r:   r   r   r   r   r7   s    r9   r:   RL_CorpLogoReversed.__init__   s    T"&r<   )r   r   N)r   r   r   r   r:   r   r   r<   r9   r   r      s    'r<   r   c            
           \ rS rSrSr\" \" \5      \" \5      \" \5      \" \5      \" \	5      \" \	5      S9r
SrSrSrSrSrS	 rS
 rSS jrSS jrSS jrS rSrg)RL_CorpLogoThin   zThe ReportLab Logo.

New version created by John Precedo on 7-8 August 2001.
Based on bitmapped imaged from E-Id.
Improved by Robin Becker.)r   r   r"   r!   r   r   g     V@g     a@zR e p o r t L a bHelvetica-Bold   c                     [         U l        [        U l        SU l        SU l        U R                  U l        U R                  U l	        g Nr   )
r   r   r   r   r   r   r   r"   r   r!   r7   s    r9   r:   RL_CorpLogoThin.__init__   s5    & ggWW
r<   c                 h    [        U R                  U R                  5      nUR                  U 5        U$ r>   r?   rA   s     r9   rC   RL_CorpLogoThin.demo   rE   r<   Nc           	      X    [        XU R                  U R                  U R                  US9$ )N)fontNamefontSizer   )r   _text	_fontName	_fontSize)r8   r   r   colors       r9   _getTextRL_CorpLogoThin._getText   s"    a4::chiir<   c                     U R                   nUc  SnUc  [        U5      n[        X1U U R                  U R                  5      $ r  )r  lenr   r  r  )r8   r   ltexts       r9   _swRL_CorpLogoThin._sw   s<    zz9!a9#d)a4!9T^^DNNCCr<   c                     SU-   SU-   pvSnUS-
  US-   pXeS-
  XiXyXuS-
  /XeS-   XjXx-
  XX-
  XuS	-   /
US-
  XS-
  X-
  XzU-
  //nU H  nUR                  [        XUS
S95        M     g )Ng?@gGz>T@r4   "   g     @I@   r0         r   )r   r   strokeLineJoin)r@   r   )r8   r   r   r  r   r   x1x2fLy1y2Lr  s                r9   _addPageRL_CorpLogoThin._addPage   s    r58BB4BAbRRA.2bBE"bB7U2eBE"U+- AEE(15YZ[\ r<   c                    SnU R                   nU R                  n[        UR                  U-  UR                  U-  UR
                  U-  5      n[        5       n[        5       nUR                  [        X"SSU R                  U R                  S95        U R                  S-
  U R                  5       -  nUR                  US5        U R                  USSSUS9  U R                  USUS	9  UR                  SU-  S5        UR                  U R                  SSUS
95        UR                  U R                  SSUS
95        UR                  US5        UR                  SSS9  UR!                  SS5        UR                  U5        UR                  U R"                  U R                  -  U R$                  U R                  -  5        UR!                  U R&                  U R(                  5        U$ )Nr1   r   )r   r   r   r   r!   r"   r&   r0      r   )r   r   r   r  )r   r  )r   r   r  r4   r   &   )r   r   r   r   r   r   r   r@   r
   r   r   r  r   r%  r  r   r   r!   r"   r   r   )r8   r   r   r   r    r   g2s          r9   r   RL_CorpLogoThin.draw   s   NN	&&y}}R'	(:9>>";LMGG	dYatww_c_f_fghggai#
AbQ!t&AbQ[9
2a
t}}q16}23
t}}q1;}78
A
2!
2	b		

477"4;;tww#67	tvvr<   )r   r"   r   r!   r   r   )r   r   N)NN)r(  Nr   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r:   rC   r  r  r%  r   r   r   r<   r9   r  r     s    ! ""n-^, /"M2
H 
B	B
E II
jD	]r<   r  c                   >    \ rS rSrSrSSS\-  S\-  S4S jrS rSrg	)
ReportLabLogo   z:vector reportlab logo centered in a 250x by 150y rectangler   g      @g      ?c                 0    X4U l         X44U l        XPl        g r>   )origin
dimensions
powered_by)r8   atxatyr!   r"   r2  s         r9   r:   ReportLabLogo.__init__   s    j /$r<   c                     SSK Jn  UR                  5         U R                  u  p4U R                  u  pV[        5       nXVsUl        Ul        UR                  UR                  5       XUS5        UR                  5         g )Nr   )	renderPDF)reportlab.graphicsr7  	saveStater0  r1  r   r!   r"   r   rC   restoreState)r8   canvasr7  r3  r4  r!   r"   logos           r9   r   ReportLabLogo.draw   s`    0KK	//}"'
DKtyy{6c!4r<   )r1  r0  r2  N)	r   r   r   r   r   r   r:   r   r   r   r<   r9   r-  r-     s#    D!3t8CHQR %
r<   r-  c                      \ rS rSrSr\" S 0 S\" \5      _S\" \5      _S\" \5      _S\" \5      _S\" \5      _S\" \5      _S	\" \5      _S
\" \5      _S\" \	5      _S\" \
5      _S\" \
5      _S\" \5      _S\" \5      _S\" \5      _S\" \5      _S\" \5      _S\" \5      _S\" \5      _S\" \5      _S\" \5      _6rS\-  rS\-  rSrSrS rS rS rSrg)!RL_BusinessCardi
  a  Widget that creates a single business card.
Uses RL_CorpLogo for the logo.

For a black border around your card, set self.border to 1.
To change the details on the card, over-ride the following properties:
self.name, self.position, self.telephone, self.mobile, self.fax, self.email, self.web
The office locations are set in self.rh_blurb_top ("London office" etc), and
self.rh_blurb_bottom ("New York office" etc).
r   r   altStrokeColorr   r   r"   r!   r   bleed	cropMarksr   nameposition	telephonemobilefaxemailwebrh_blurb_toprh_blurb_bottomgffffff@g      !@r  z,strategic reporting solutions for e-businessc                 z   [         U l        [        U l        [        U l        SU l        SU l        U R                  U l	        U R                  U l        U R                  S-  U l        S[        -  U l        SU l        SU l        SU l        SU l        SU l        SU l        S	U l        S
U l        SU l        / SQU l        g )Nr   g@皙?r0   zJoe CoolzFreelance Demonstratorz020 8545 7271-z020 8544 1311zinfo@reportlab.comzwww.reportlab.com)zLondon office:zReportLab Europe LtdzMedia Housez3 Palmerston Road	WimbledonzLondon SW19 1PGzUnited Kingdom)r   r   r   r   r   r@  r   r   r   r"   r   r!   r   r   rA  rB  r   rC  rD  rE  rF  rG  rH  rI  rJ  r7   s    r9   r:   RL_BusinessCard.__init__2  s    & #ggWW
::d?r6
	.& '
$'r<   c                 h    [        U R                  U R                  5      nUR                  U 5        U$ r>   r?   rA   s     r9   rC   RL_BusinessCard.demoN  rE   r<   c                 	   U R                   nU R                  n[        5       nUR                  [	        SSU R                   U R                   U R
                  U R                  S95        UR                  [	        SU R                  U R
                  -
  U R                   U R                   U R                  U R
                  S95        [        5       n[        5       nS[        -  Ul        S[        -  Ul        UR                  5         UR                  U5        UR                  U5        UR                  U R                  UR                  U R                  S-  -   -
  U R                  UR                  U R                  S-  -   -
  S9  UR                  [        U R
                  S-  U R                  UR                  U R                  S-  -   -
  SUR                  -  -   S	U R                  S
SU R                  S95        / SQnU R                  U R                   U R"                  U R$                  U R&                  /nUR)                  5         UR)                  5         [+        [-        U5      SS5       H  nUR                  [        U R
                  U R
                  S-  -   U R
                  S-  US-
  S-  -   SU R                  SSXhS-
     S95        UR                  [        U R
                  U R
                  S-  -   U R
                  -   U R
                  S-  US-
  S-  -   SU R                  SSXxS-
     S95        M     U R                  U R
                  -
  U R
                  S-  -
  S-   n	U R.                  n
[+        S[-        U
5      S-   5       HO  nUR                  [        U R                  U R
                  S-  -
  XS-  -
  SU R                  SSXS-
     S95        MQ     UR                  [        U R
                  U R
                  S-  -   U	S-
  SU R                  SSU R0                  S95        U	S-
  nUR                  [        U R
                  U R
                  S-  -   US-
  SU R                  SSU R2                  S95        U R4                  (       a5  UR                  [	        SSS [6        U R                  U R                  S95        UR                  U R8                  U R:                  5        U$ )Nr   )r   r   r   r   r!   r"   g      ?gffffff?*   )r   r   g      @g8x?   zHelvetica-BoldObliquestart)r   r   r  r   r  
textAnchorr  )zTel:zMobile:zFax:zEmail:zWeb:r   r0   g      @   	Helveticar&   endr4   g      (@   )r   r   r   r@   r
   r   r"   r!   r   r   r   r   r   r@  
_straplinerE  rF  rG  rH  rI  reverseranger  rJ  rC  rD  r   r   r   r   )r8   r   r   r   r*  rlleftTextleftDetailsr   ty	rightTextty1s               r9   r   RL_BusinessCard.drawS  sP   NN	&&G	dqa&*nn(,"&"2"2#';;	0 	1
 	
dqdkk$*:*::&*nn(,"&**#'#3#3	5 	6 W=G	r6
	
r
	b	
DJJ$**R- 89KK299dkk"n#=> 	 	A 	
f))#-"&++DKKN1K"LPWY[YbYbOb!c'((,(;(;'>)0#'??4 	5 ?^^DKKDHHMs8}Qr*AEE&T--t/?/?/CD!%!1!1#!51u F'((,(8(8'2)0#+aC=2 3 EE&T--t/?/?/CDTEUEUU!%!1!1#!51u F'((,(8(8'2)0#.s#35 6 +" kk$***D,<,<S,@A!C ##	q#i.*,AEE&TZZ)9)9#)=> "K 0'((,(8(8'2).#,qS>3 4 - 	
f))4+;+;C+?@ "2')(,(8(8'2)0#'99. 	/ i	f))4+;+;C+?@ #A'((,(8(8'2)0#'==2 	3 ;;EE$1!(,,1&*jj'+{{	4 5
 	
tvvr<   )r@  rA  r   r   rB  rH  rG  r   r"   rF  rC  rD  rJ  r   rE  rI  r!   r   r   Nr   )r   r   r   r   r   r   r   r   r   r   r   isStringisListOfStringsOrNoner   r   r   r   r  r\  r:   rC   r   r   r   r<   r9   r?  r?  
  sk     
 /
"=1
 &m4
 "	

 "
 h'
 X&
 #8,
 >*
 y)
 I&
 (#
 h'
 x(
 H%
  "!
" 8$#
$ "%
& ""78'
( %%:;)
H. 
bB	RB I?J'8
`r<   r?  )pdfepsjpggifsvgc                    [        5       nSUl        SUl        [        UR                  UR                  5      nUR	                  U5        SUR
                  S'   UR                  SU S9  [        5       nSUl        SUl        [        UR                  UR                  5      nUR	                  U5        SUR
                  S'   UR                  SU S9  [        5       n[        SSS5      Ul	        SUl        SUl        [        UR                  UR                  5      nUR	                  U5        SUR
                  S'   UR                  S	U S9  [        5       nS
Ul        S
Ul        SUl        [        UR                  S-   UR                  S-   5      nUR	                  U5        SUR
                  S'   UR                  SU S9  g)z,This function produces a pdf with examples.    r2   r0   verbosecorplogo_whiteonblue)fnRootformatscorplogo_blueonwhiterM  corplogo_grayonwhite   2   r?  N)r   r!   r"   r	   r@   __dict__saver   r   r   r?  r   r   r   )rr  r_  rB   s      r9   testry    sx    
BBHBI#AEE"IAJJyFF(F9 
	BBHBI#AEE"IAJJyFF(F9 
	Bc3'BLBHBI#AEE"IAJJyFF(F9 
	B	BD	BDBIBIIbL)AEE"IAJJyFF#GF4r<   __main__N) __version__r   reportlab.lib.unitsr   r   reportlab.lib.validatorsreportlab.lib.attrmapreportlab.lib.formattersr   reportlab.graphics.shapesr   r   r	   r
   r   r   reportlab.graphics.widgetbaser   reportlab.lib.colorsr   r   r   r   reportlab.pdfbase.pdfmetricsr   r   r   r  r-  r?  ry  r   r   r<   r9   <module>r     s    	A ( & # 5 X X 0 C C 4M& M^'+ 'Lf L\ $if iX 1 (5T ZF r<   