a
    ¦¾dej  ã                   @   sô   d Z dZddlmZmZ ddlT ddlT ddlmZ ddl	m
Z
mZmZmZmZmZ ddlmZ ddlmZmZmZmZ dd	lmZ G d
d„ deƒZG dd„ deƒZG dd„ deƒZG dd„ dƒZG dd„ deƒZg d¢fdd„Zedkrðeƒ  dS )z3.3.0zñGenerate 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                   @   sR  e Zd ZdZeeedƒeedƒeedƒeedƒeedƒeedƒeedd	�eed
d	�eedd	�eedd	�eedd	�eedd	�eedd	�eedd	�ee	e
ee
ddd�fƒdd	�ee
dd	�ee
dd	�eee	eeeddd�fƒƒdd	�eee	eeeddd�fƒƒdd	�eeeƒdd	�d�Zdd„ Zdd„ Zdddd eddfd!d"„Zed#d$„ ƒZd%d&„ ZdS )'ÚRL_CorpLogoz;Dinu's fat letter logo as hacked into decent paths by RobinzLogo x-coordzLogo y-coordzLogo rotationzLogo lettering stroke colorzLogo lettering fill colorzLogo lettering stroke widthzLogo background color)ÚdesczLogo border colorzLogo border width (1)z,None or fraction of background for shadowingz)width in points of the logo (default 129)z)height in points of the logo (default 86)zx-skew of the logo (default 10)zy-skew of the logo (default 0)é   )ÚloÚhiz7If true or (true(top),true(bottom)) show the page lineszIf true do x reversalzIf true do y reversalz1None or fill/stroke colors for the o in ReportLabz/None or fill/stroke colors for the page outlinez-None or precision negative means strip excess)ÚxÚyÚangleÚstrokeColorÚ	fillColorÚstrokeWidthÚ
backgroundÚborderÚborderWidthÚshadowÚwidthÚheightÚskewXÚskewYÚshowPageÚxFlipÚyFlipÚoColorsÚ
pageColorsÚprecc                 C   s|   t | _d | _d| _t| _d | _d| _d| _d| _	d| _
d | _ | _ | _ | _| _d| _d| _d| _d | _d | _d | _d S )	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*   ©Úself© r5   úK/var/www/sistema_ama/venv/lib/python3.9/site-packages/reportlab/lib/corp.pyÚ__init__.   s     zRL_CorpLogo.__init__c                 C   s   t | j| jƒ}| | ¡ |S ©N©r   r!   r"   Úadd©r4   ÚDr5   r5   r6   Údemo@   s    
zRL_CorpLogo.demor   Nr+   c	              
   C   s  g d¢}	g d¢}
| j }g }|rZt|ƒs.||f}|d rD| g d¢¡ |d rZ| g d¢¡ |r�|  |	| j¡}	| t|	|d ||d ||d�¡ n|
|	7 }
| j rÔ|rÔ|  || j¡}| t||d ||d ||d�¡ n|
|7 }
|  |
| j¡}
| t|
|||||d�¡ d S )N))ÚmoveToçËÖú"¡O@ç‘
cA@)ÚcurveTor?   g†ÉTÁ¨Ä@g¿CQ O¼N@gG8-xÑW@gÄ±.n£N@g:]›ù?)rA   gÐa¾¼ wM@g­nõœô¾Õ?gM2röœL@ç�B²€Ñ¿gµ¦y‹K@rB   )rA   gŸ“Þ7¾~J@rB   g7l[”Ù¨I@ç
¿ÔÏ›ŠÖ?gËÇº¸	I@çcbóqm¨ù?)rA   gO@aÃkH@g+•Ô	è@ç)Ý^ÒH@çóÈ<7@rE   çÝ{¸ä¸³@)rA   rE   gòï3.˜!@g¨ÆK7‰mH@gãˆµø %@g×£p=
I@çÄáÑÆ‘'@)rA   g´CV¯I@çœ3¢´'*@g‡P¥f„J@çm9—âªr+@gh‘í|?�K@rJ   )rA   gúDž¤L@rJ   gdéCÔM@g}yöÑ)*@gÐDØðôN@gœùÕ ˜'@)rA   gÊ‰v¾N@gfƒL2r%@r?   g�EÓÙÉ€!@r?   r@   Ú	closePath)r>   çöóå]L@rG   )rA   rL   gT:Xÿç°@gw¾Ÿ/YL@g¯Z™ðK}@gVeßÁOL@gÍä›mn @)rA   gXâeSFL@gî%�Ñ:Ú @g�x]¿8L@gî_YiRŠ!@góqm¨'L@gÍ’ 5µ"@)rA   g¡JÍhL@g¬Å§ ¯"@gœ¼è+ L@g*Æù› #@gîÎÚmçK@ç7TŒó7q#@)rA   g‚ÅáÌ¯ÎK@gý‡ôÛ×Á#@gÉ<÷²K@ç™õb('ê#@gÎªÏÕV”K@rN   )rA   gÀ	…8XK@rN   çrm¨ç'K@g¨o™ÓeQ#@çjjÙZK@gV¼‘yä"@)rA   ç�f,šÎÞJ@gèy’!@çÿ[ÉŽ�ÌJ@gó«9@0@rR   ç'½o|íÙ@)rA   rR   gèj+ö—½@rQ   gZ�!«›@rP   gNîw(
t@)rA   rO   gRÑè"@g)Ý^ÒXK@ç�÷ª•	¿@g'1¬–K@rT   )rA   grPÂLÛÏK@rT   g:]›ÿK@gš™™™™@gšë4ÒR%L@g,H3Mg@)rA   g×£p=
KL@g/n£¼@rL   gW	‡3@rL   rG   rK   )•)r>   gû\mÅþr/@r   )ÚlineTogèME*Œý"@r   )rU   gDL‰$z™@gEž$]3Y@)rA   gZ‰{,}@gÇº¸�Ð@g²c#¯K@g"T©Ùm@gÛŠýe÷@gÇ.Q½50@)rA   gç Á=¾@gö´Ã_ó@gô7¡g@gé`ýŸÃÜ@gWCâKÿ@ç±ù¸6Tì@)rU   çaŽ¿·)@rS   )rU   rW   r   )rU   çU‡Ü7àá?r   )rU   rX   çÓÞà“13@)rU   gÝÍSrÓ@rY   )rA   g—­õEB"@rY   g<ƒ†þ	þ%@g‡¿&kÔ»2@gÊ‰v’(@g|a2UÐ1@)rA   g·e¥IÙ+@g{ˆFw£0@ç"ýöuà|-@g°¬4)í-@rZ   g…_êçM•)@)rA   rZ   gÅ¬C9ñ$@gïU+~I+@g#J{ƒ/¼!@g4ôOp±â&@rV   rK   )r>   çKÍhF@ç±Ÿ`œ$@)rU   gÃ¶E™Ò@r\   )rA   g›sôx@r\   g‘,`·®@gpB!%@g¶g–¨¹ @g˜£Çïmú%@)rA   g²ˆ×õ›!@g¤SW>Ëã&@ç"Žuq"@g/ú
Ò(@r]   g„Ó‚}u)@)rA   r]   g¤ÂØB�S,@gü ¤6qb @çûWVš”Â-@gÑW�f,@r^   )rU   r[   r^   rK   )r>   ç�.‹‰Í9@çÂú?‡ù2@)rU   gnLOXây>@gw¡¹N#Í@)rA   g;ªš ê>@gQèy@g 7©0V=@gÛe6Hû?g�ÇTÆ7<@géÔ•Ïò<í?)rA   g~Wÿ[;@g|—wJ¿?g‰«x#£9@rB   ç"ŽuqÕ7@rB   )rA   g'kÔC4²5@rB   g0Úr.4@g�pZð¢¯Ô?g¼t“Î2@gNÑ‘\þCø?)rA   gÓö¯¬4™1@gãkÏ,	Ð@ç»aÛ¢Ìþ0@g0žACÿ„@rb   gczÂè@)rA   rb   gJ+‡6!@géñ{›þ¤1@gUMu¯$@gá´àE_ñ2@gÜ�µÛ^'@)rA   g¯|–çÁ=4@gŠvR~*@g¦Õ�¸Çê5@ç\ætYLl+@gFÎÂžvø7@rc   )rA   g¤SW>Ë:@rc   g
p¥;@gsº,&6*@g‡§WÊ2Ü<@g0»'…'@)rA   gˆ�)t^>@g»íBs�æ$@ç;ªš ê®>@gè¤÷�¯m!@rd   g†8ÖÅm4@)rU   g+Áâpæ§>@ç»aÛ¢¬@)rU   gTÆ¿Ï¸ˆ6@re   )rA   gS£’:™6@gëÿæ+@gòµg–7@ç‚Êø÷×@ra   rf   )rA   gZžwgu8@rf   gØÓMÞ8@gB²€	\@r_   r`   rK   )r>   çr¿CQ /9@çL‰$zµ @)rA   rg   g¿}8g4!@gÑèb'9@g~©Ÿ7©!@gW>Ëóà9@gÁnØ¶("@)rA   gXÿç0_9@g°=³$@}"@gs.ÅUeï8@çFÎÂžvØ"@g™dä,ìÑ8@g–x@Ù$#@)rA   gÜK£u´8@rM   g™Óe1±‘8@gè¤÷�¯­#@gýöuàœi8@g|~!<Ú#@)rA   g}Ëœ.‹A8@gŸ°ÄÊ$@gÙëÝï8@ç>"¦D$@gŸ°ÄÊæ7@rj   )rA   gkñ) Æƒ7@rj   g$î±ô¡37@g¬ZdË#@gu“Vö6@gœ¿	…(#@)rA   gS‘
c¹6@g1Óö¯¬„"@çÑèbgš6@gˆht±³!@rk   rh   rK   )r>   çtêÊgy.C@çbg
�÷À)rU   çš_Í‚i@@rm   )rU   rn   ç ®dÇFà*@)rU   rl   ro   )rU   ç{Ic´ŽC@gQèy'@)rA   g‡3¿š<C@gYni5$Þ'@g ïU+ZC@g^×/Ø‹(@g"¦D½xC@gEž$]3)@)rA   g�x]—C@g,eâX§)@çÜN^¸C@g{Nzßø*@g]Š«Ê¾ÛC@ç2ZGUt*@)rA   g×ÀV	ÿC@géeË-Í*@gÚá¯É%D@g’"2¬â+@g`«‹ÃMD@g.� ø16+@)rA   gætYLlvD@gXVš”‚^+@g+Ù±ˆ£D@rJ   gE*Œ-ÕD@rJ   )rA   g>®ãŒE@rJ   gŠ°áé•"F@rI   g ïU+–F@rH   )rA   gñº~ÁnG@gÜôg?R%@ç¯þ·’AG@g�Ñ:ªš !@rs   ç+j0Í@)rA   rs   rF   g­ú\mÅ
G@gIhË¹×@ga2U0*�F@rD   )rA   göóå1F@rC   gsôø�E@rB   gŒ¾‚4cáD@rB   )rA   gšë4ÒR5D@rB   gÂ&SŸC@g8¡‡PÛ?rp   g[™ðKý<ý?)rA   gê•²q$C@ç˜À­»yö?gyÌ@eü'C@gÀÏ¸p ¤ð?giW!å')C@gÕ	h"lxç?)rA   gd’‘³,C@g)"Ã*ÞÈÚ?rl   g˜//À>:¥?rl   g½R–!ŽuÙ¿rK   )r>   çk+ö—ÝcD@çK“RÐíe@)rA   rv   gïU+~é@g¨©ekUD@gRD†U¼Ñ @g†�ˆ)‘8D@g'ÚUHùÉ!@)rA   g¹ˆïÄ¬D@gQfƒL2Â"@g‘,`·òC@ç‘'I×L>#@gÄÎ:¯½C@rx   )rA   g•š=Ð
PC@rx   çp¶¹1=C@g[ë‹„¶\!@ry   gPp±¢3@)rA   ry   gŠ«Ê¾+‚@gCV·zNNC@çOÌz1”S@rq   rz   )rA   g…™¶eíC@rz   g0žACD@g©ÐDØ°@gý¤Ú§ã5D@gW•}W¿@)rA   gÿ[ÉŽ�TD@géeË-Í@rv   g¬­Ø_v¯@rv   rw   rK   )r>   çÿÊJ“RrQ@r   )rU   ç¤p=
×P@r   )rU   r|   ro   )rU   r{   ro   )rU   g’ËH¿_Q@gÅæãÚP¡%@)rA   gÈ$#ga•Q@g­nõœôŽ)@gÙB�ƒîQ@ç„�çÞÃ…+@ç OäIÒiR@r}   )rU   r~   gƒÀÊ¡U @)rA   gtÈ^ïBR@g	Šcî @gµûËî!R@çBx´qÄ:!@gT ŒgÐR@r   )rA   g�‘a×Q@r   gÑèbg²Q@gX­Lø¥¾ @g}iÆ˜Q@g[B>èÙŒ@)rA   gZð¢¯ Q@g*ãßgœ@r{   gðùa„ðÈ@r{   gQèy@rK   )r>   çÚÉà(ycT@r   )rU   çR,·´ S@r   )rU   r�   ri   )rU   çÓMbX›R@ri   )rU   r‚   ro   )rU   r�   ro   )rU   r�   ç|~!d1@)rU   r€   rƒ   )rU   r€   ro   )rU   ç�÷ª•	ÙT@ro   )rU   r„   ri   )rU   r€   ri   rK   )r>   ç›Z¶ÖËW@r   )rU   ç 2þ}ÆEU@r   )rU   r†   rY   )rU   çŠ<Iºf¶V@rY   )rU   r‡   ç4×i¤¥r@)rU   r…   rˆ   rK   )r>   ç¦',ñ€€[@r   )rU   çŠ}"Z@r   )rA   gU0*© Z@g¿·éÏ~¤Ü?g‘ao"Z@g|,}è‚úë?gnšë4$Z@g?ÆÜµ„|ô?)rA   g²ˆ×õ%Z@gæèñûú?g˜À­»'Z@g•eˆc] @gdùƒ�)Z@g¶ä „@)rA   ggòÍ67ìY@gê[ætYLâ?gRòêšY@rB   gí»"øß2Y@rB   )rA   gÁÅŠLÙX@rB   g ®dÇF’X@g¢ÑÄÎÖ?g«•	¿Ô]X@gz6«>WÛù?)rA   g¼W­Lø)X@g�´TÞŽð@çNîw(
X@g1%’èe@r‹   grö´Ã?@)rA   r‹   g-•·#œæ!@géšÉ7Û*X@godùC%@gôlV}`X@gÕçj+ö·'@)rA   gR,·´–X@g£éìdp4*@g§èH.ßX@rJ   g–Ïò<¸;Y@rJ   )rA   g¸Ìé²˜šY@rJ   g!ÈA	3çY@gIhË¹×)@gèME*Œ!Z@grm¨çŸ&@)rA   g
.VÔ` Z@g0ÃGÄô&@gÝê9é}Z@gåí§?'@gw;SèZ@gh†¬~'@)rA   gü©ñÒMZ@gXâeS¾'@g–Ïò<¸Z@gÞ“‡…Zó'@rŠ   g’èeË(@)rU   çk}‘Ð–Z@g­ú\mÅ®)@)rU   gû?‡ùòZ@ro   )rU   r‰   ro   rK   )r>   rŒ   ç•Ô	h"Œ@)rA   rŒ   gïá’ãN‰@g<úDZ@gCâK:@g¶J°8œZ@g0žACO @)rA   gE¦aøZ@gQÚ|!@gÉq§t°Z@gß7¾öÌ’!@g[%XÎZ@gP0žA"@)rA   gé·¯çZ@g¤‹¦³s"@g3Pÿ>ûY@g1ëÅPNÄ"@g$bJ$ÑñY@g÷’Æhõ"@)rA   gt{IcèY@g„Ø™Bç%#@gû"¡-çÜY@rx   gÁâpæWÏY@rx   )rA   g³A&9“Y@rx   ç0Úr.uY@g�Âõ(\ÿ @rŽ   g¥,Cë@)rA   rŽ   gø6ýÙ�”@gµ2á—ú�Y@ç_)ËÇº@gýöuàœÅY@r�   )rA   gò°PkšýY@r�   rŒ   g”Þ7¾öl@rŒ   r�   rK   )r>   gŸåypwŽ]@r   )rU   çÇº¸�$\@r   )rU   r�   çW•}Wÿ4@)rU   ç#Æ‚†]@r‘   )rU   r’   gJëÿF+@)rA   r’   gd*ãß*@gÉŽ�@¼„]@g{Nzßøš(@g,g~5�]@g¬sÈ^ÿ&@)rA   g„*5{ ¡]@gsº,&6Ÿ(@g|¸ä¸SÂ]@g¼®_°Æ)@g:¯±KTã]@rr   )rA   gìQ¸…^@g¯™|³Í+@g1|DL‰0^@rJ   gO¯”ed^@rJ   )rA   g‰ÒÞàÅ^@rJ   g®ÓHKå_@g[rP2*@g{1”íD_@gÄ”H¢—±'@)rA   gK°8œùy_@gi:;5%@çôlV}”_@g2rö´³!@r“   g´Èv¾ŸZ@)rA   r“   gOGÉ«³@gm±y_@g§Ëbbóñ@gøˆ˜IB_@gî=\rÜ©ø?)rA   gGÉ«s_@çžï§ÆK7Õ?gpënžêÀ^@rB   gm­/Ú`^@rB   )rA   gŠ}"O2^@rB   gâX·Ñ
^@gÁ=~oÓ¿¿gŠ<Iºfê]@g»íBs�FÆ?)rA   g£Ó0|Ú]@r”   g•Ô	h"Ê]@g­4)Ý^á?g…|Ð³Y¹]@gìú»aÛé?)rA   gq>?Œ¨]@g$œ¼è+ñ?gúÕ ˜—]@ru   r’   gº,&6×ü?)rA   gž{—‡]@gŠŽäòRú?gV-²‡]@g{Ic´Ž*ø?g|›þìGˆ]@gÇK7‰A`ö?)rA   gâuý‚Ýˆ]@g„fÚþ•ô?gZ»íBs‰]@gœùÕ ó?gÕ!7ÃŠ]@g‡P¥æñ?rK   )r>   ç}iÆ¢%^@rt   )rA   r•   g;äf¸?!@gö´Ã_“^@ç—�z6+#@gÖ¨‡htË]@r–   )rA   g¶-Êl–]@r–   ç5æè{]@gÑ\§‘–Z!@r—   gm9—âªr@)rA   r—   g%#gaOÛ@gHùIµO—]@çr¿CQ @g\rÜ)Î]@r˜   )rA   g#øßJv^@r˜   r•   g£¢Ñ¤@r•   rt   rK   r   ))r>   çûWVš”Z@@ç%’èe-@)rU   r™   çÿìGŠÈèG@)rU   gr3Ü€	T@r›   )rU   ç/ú
ÒŒ�V@gž$]3ùšB@)rU   rœ   çX9´È4@)rU   çŽ’WçJU@r�   )rU   rž   çÑèbgº>@)rU   çñ.ñ�jR@rŸ   )rU   r    ç£;ˆ�)E@)rU   çW	‡3'C@r¡   )rU   r¢   rš   rK   )r>   ç°rh‘íÐS@çÄ%Ç�Ò)B@)rU   rž   r¤   )rU   r£   r¡   rK   r,   )	)r>   r¢   çŠå–VC"À)rU   r¢   çLqUÙw�9À)rU   rž   r¦   )rU   rž   ç®ž“Þ7>ö¿)rU   rœ   r§   )rU   rœ   çÔÔ²µ&?À)rU   r™   r¨   )rU   r™   r¥   rK   )r   r   r   ÚdxÚdy)r%   ÚisSeqÚextendÚ	applyPrecr*   r:   r   )r4   Úgr©   rª   r   r   r   Ú_ocolorsÚ_pagecolorsÚOPÚPr%   ZPPr5   r5   r6   Ú
_paintLogoE   s*    $
$zRL_CorpLogo._paintLogoc                 C   sp   |d u r| S g j }t|d�}| D ]H}t|ƒr`g j }|D ]"}t|tƒrPt||ƒƒ}||ƒ q6|j}||ƒ q |jS )N)Zplaces)Úappendr   r«   Ú
isinstanceÚfloatÚ__self__)r²   r*   ÚRÚfÚpÚnÚer5   r5   r6   r­   j   s    



zRL_CorpLogo.applyPrecc                 C   s8  | j }| j}tƒ }| j}| j}| j}| j}| j| j }}	|rŒ|d urzd|  krXdk rzn nt	|j
| |j| |j| ƒ}| j|dd|d� | j|||| jpžd | jp¦d d� |j| j| jd� | | j| j¡ tƒ }
|
 |¡ d\}}| j| j }}|�s|�r$|�r$|
 dtdd|||||d	�¡ ||k�s8||k�rT|
 |t|ƒ |t|ƒ ¡ | j}| j�rš|d
 |d
  }}|
 | | ¡ |
 |¡ |
 ||¡ t| ddƒ�r®d�p°d}t| ddƒ�rÆd�pÈd}|�sÖ|�r(|�pÞd}|�pèd}|
 || ||  ||	 ||  ¡ t|
|dd|ddfd�}
n|
 ||	¡ |
S )Nr   r,   ç      Àr   )rª   r©   r   )r   r   r¯   r°   ©ZkxÚky)r/   r.   )r   r   r   g       @r&   éÿÿÿÿr'   )Z	transform) r   r   r   r   r   r   r    r   r   r   ÚredÚgreenÚbluer³   r(   r)   Úskewr#   r$   Úshiftr1   r2   r:   r!   r"   Úinsertr	   Úscaler¶   r   ÚrotateÚgetattr)r4   r   r   r®   ÚbgZbdZbdwr    r   r   ÚGÚ_wÚ_hÚwÚhr   r&   r'   ÚsxZsyr5   r5   r6   Údrawz   sN     
ÿ
0


$zRL_CorpLogo.draw)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚAttrMapÚAttrMapValueÚisNumberÚisColorOrNoneÚisNumberOrNoneZEitherOrÚ	isBooleanZ
SequenceOfZNoneOrZisColorZisIntÚ_attrMapr7   r=   r   r³   Ústaticmethodr­   rÑ   r5   r5   r5   r6   r      s:   









  ì%
r   c                   @   s   e Zd Zdd„ ZdS )ÚRL_CorpLogoReversedc                 C   s   t  | ¡ t| _t| _d S r8   )r   r7   r   r   r   r   r3   r5   r5   r6   r7   ¥   s    
zRL_CorpLogoReversed.__init__N)rÒ   rÓ   rÔ   r7   r5   r5   r5   r6   rÞ   ¤   s   rÞ   c                   @   s†   e Zd ZdZeeeƒeeƒeeƒeeƒeeƒeeƒd�Z	dZ
dZdZdZdZdd	„ Zd
d„ Zddd„Zddd„Zddd„Zdd„ ZdS )ÚRL_CorpLogoThinz—The 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                 C   s,   t | _t| _d| _d| _| j| _| j| _	d S ©Nr   )
r   r   r   r   r   r   rÍ   r"   rÌ   r!   r3   r5   r5   r6   r7   À   s    zRL_CorpLogoThin.__init__c                 C   s   t | j| jƒ}| | ¡ |S r8   r9   r;   r5   r5   r6   r=   È   s    
zRL_CorpLogoThin.demor   Nc                 C   s   t ||| j| j| j|d�S )N)ÚfontNameÚfontSizer   )r   Ú_textÚ	_fontNameÚ	_fontSize)r4   r   r   Úcolorr5   r5   r6   Ú_getTextÍ   s    zRL_CorpLogoThin._getTextc                 C   s:   | j }|d u rd}|d u r"t|ƒ}t|||… | j| jƒS râ   )rå   Úlenr   ræ   rç   )r4   r¹   ÚlÚtextr5   r5   r6   Ú_swÐ   s    zRL_CorpLogoThin._swé   c                 C   s®   d| d|  }}d}|d |d  }	}
||d ||	||	||d g||d ||
|| |
||
| ||d	 g
|d |
|d |
| ||
| gg}|D ]}|  t|||d
d�¡ qŽd S )Ngš™™™™Ù?@g®Gáz>T@r0   é"   g     @I@é   r,   é   é   r   )r   r   ZstrokeLineJoin)r:   r
   )r4   r®   r   rè   r©   rª   Úx1Zx2ZfLÚy1Úy2ÚLrë   r5   r5   r6   Ú_addPageÖ   s    &þzRL_CorpLogoThin._addPagec              
   C   s6  d}| j }| j}t|j| |j| |j| ƒ}tƒ }tƒ }| t||dd| j	| j
d�¡ | j	d |  ¡  }| |d¡ | j|ddd|d� | j|d|d	� | d| d¡ | | jdd|d
�¡ | | jdd|d
�¡ | |d¡ |jddd� | dd¡ | |¡ | | j| j	 | j| j
 ¡ | | j| j¡ |S )Nr-   r   )r   r   r   r   r!   r"   r   r,   rî   r½   )r   r©   rª   rè   )r   rè   )r   r   rè   r0   r¾   é&   )r   r   r   rÁ   rÂ   rÃ   r   r:   r	   rÌ   rÍ   rí   rÇ   r÷   ré   rÄ   rÅ   r!   r"   r   r   )r4   rÐ   r   r   r    r®   Úg2r5   r5   r6   rÑ   á   s*    
zRL_CorpLogoThin.draw)r   r   N)NN)rî   Nr   r   )rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÚ   rÙ   rÜ   rÍ   rÌ   rå   ræ   rç   r7   r=   ré   rí   r÷   rÑ   r5   r5   r5   r6   rß   ª   s(   ú	


rß   c                   @   s4   e Zd ZdZddde de dfdd„Zdd„ Zd	S )
ÚReportLabLogoz:vector reportlab logo centered in a 250x by 150y rectangler   g      @g      ø?c                 C   s   ||f| _ ||f| _|| _d S r8   )ÚoriginÚ
dimensionsÚ
powered_by)r4   ÚatxÚatyr!   r"   rý   r5   r5   r6   r7   û   s    

zReportLabLogo.__init__c                 C   s^   ddl m} | ¡  | j\}}| j\}}tƒ }|| |_|_| | 	¡ |||d¡ | 
¡  d S )Nr   )Ú	renderPDF)Zreportlab.graphicsr   Z	saveStaterû   rü   r   r!   r"   rÑ   r=   ZrestoreState)r4   Zcanvasr   rþ   rÿ   r!   r"   Zlogor5   r5   r6   rÑ      s    

zReportLabLogo.drawN)rÒ   rÓ   rÔ   rÕ   r   r7   rÑ   r5   r5   r5   r6   rú   ø   s   rú   c                   @   sÀ   e Zd ZdZeeeƒeeƒeeƒeeƒeeƒeeƒeeƒeeƒeeƒee	ƒee	ƒee
ƒee
ƒee
ƒee
ƒee
ƒee
ƒee
ƒeeƒeeƒd�Zde Zde ZdZdZdd„ Zd	d
„ Zdd„ ZdS )ÚRL_BusinessCarda»  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_topZrh_blurb_bottomgffffff@g      !@rà   z,strategic reporting solutions for e-businessc                 C   sˆ   t | _t| _t| _d| _d| _| j| _	| j
| _| jd | _dt | _d| _d| _d| _d| _d| _d| _d	| _d
| _d| _g d¢| _d S )Nr   gš™™™™™@çš™™™™™É?r,   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 RoadZ	WimbledonzLondon SW19 1PGzUnited Kingdom)r   r   r   r   r   r  r   r   rÍ   r"   rÌ   r!   r   r   r  r  r   r  r  r  r  r	  r
  r  r  r3   r5   r5   r6   r7   2  s&    
zRL_BusinessCard.__init__c                 C   s   t | j| jƒ}| | ¡ |S r8   r9   r;   r5   r5   r6   r=   N  s    
zRL_BusinessCard.democ                 C   sú  | j }| j}tƒ }| tdd| j | j | j| jd�¡ | td| j| j | j | j | j| jd�¡ tƒ }tƒ }dt	 |_dt	 |_| 
¡  | |¡ | |¡ |j| j|j| jd   | j|j| jd   d� | t| jd | j|j| jd   d|j  d	| jd
d| jd�¡ g d¢}| j| j| j| j| jg}| ¡  | ¡  tt|ƒddƒD ]”}| t| j| jd  | jd |d d  d| jdd||d  d�¡ | t| j| jd  | j | jd |d d  d| jdd||d  d�¡ �qN| j| j | jd  d }	| j}
tdt|
ƒd ƒD ]@}| t| j| jd  |	|d  d| jdd|
|d  d�¡ �q| t| j| jd  |	d d| jdd| jd�¡ |	d }| t| j| jd  |d d| jdd| jd�¡ | j�ræ| tddd t| j| jd�¡ | | j| j¡ |S )Nr   )r   r   r   r   r!   r"   g      ô?gffffffþ?é*   )r   r   g      @g“8xßÚ?é   zHelvetica-BoldObliqueÚstart)r   r   rä   r   rã   Z
textAnchorrì   )zTel:zMobile:zFax:zEmail:zWeb:rÀ   r,   g      @é   Z	Helveticar   Úendr0   g      (@é   )r   r   r   r:   r	   r   r"   r!   r   r   rÑ   rÅ   r   r  Ú
_strapliner  r  r	  r
  r  ÚreverseÚrangerê   r  r  r  r   r   r   r   )r4   r   r   r®   rù   ÚrlZleftTextZleftDetailsr¹   ÚtyZ	rightTextZty1r5   r5   r6   rÑ   S  s¶    
üü



ÿú
ú
ú	

úúú
üzRL_BusinessCard.drawN)rÒ   rÓ   rÔ   rÕ   rÖ   r×   rÙ   rØ   rÚ   rÛ   ZisStringZisListOfStringsOrNonerÜ   r   rÍ   rÌ   ræ   r  r7   r=   rÑ   r5   r5   r5   r6   r  
  s<   
ìr  )ZpdfZepsZjpgZgifÚsvgc                 C   s(  t ƒ }d|_d|_t|j|jƒ}| |¡ d|jd< |jd| d� tƒ }d|_d|_t|j|jƒ}| |¡ d|jd< |jd| d� tƒ }tdddƒ|_	d|_d|_t|j|jƒ}| |¡ d|jd< |jd	| d� t
ƒ }d
|_d
|_d|_t|jd |jd ƒ}| |¡ d|jd< |jd| d� dS )z,This function produces a pdf with examples. é�   r.   r,   ÚverboseZcorplogo_whiteonblue)ZfnRootÚformatsZcorplogo_blueonwhiter  Zcorplogo_grayonwhiteé   é2   r  N)r   r!   r"   r   r:   Ú__dict__ÚsaverÞ   r   r   r  r   r   r   )r  r  r<   r5   r5   r6   Útest¶  s<    







r"  Ú__main__N) Ú__version__rÕ   Zreportlab.lib.unitsr   r   Zreportlab.lib.validatorsZreportlab.lib.attrmapZreportlab.lib.formattersr   Zreportlab.graphics.shapesr   r   r   r	   r
   r   Zreportlab.graphics.widgetbaser   Zreportlab.lib.colorsr   r   r   r   Zreportlab.pdfbase.pdfmetricsr   r   rÞ   rß   rú   r  r"  rÒ   r5   r5   r5   r6   Ú<module>   s&     N -*