a
    ¦¾dep²  ã                   @   sð  d Z ddlmZmZmZ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mZ ddlmZ ddlmZmZ ddlZeddddd�Zg g g g d	œZed
ddddddddddddddddddd�Zed
ddddd d!d"d#d$�	Zded%< ed&d'd(d)d*d+�Zd,d-„ Zd.d/„ Z efd0d1„Z!G d2d3„ d3eƒZ"G d4d5„ d5eƒZ#d6d7„ Z$G d8d9„ d9eƒZ%G d:d;„ d;ƒZ&ee&g d<¢g d=¢d>ƒe&g d?¢g d@¢dAƒe&g dB¢g dC¢dDƒe&g dE¢g dF¢dGƒe&g dH¢g dI¢dJƒdK�Z'edLdMdNdOdPdK�Z(e)dQk�rìddl*Z*e* +¡  dS )R)ÚAcroFormé    )	Ú	PDFObjectÚPDFArrayÚPDFDictionaryÚ	PDFStringÚ	pdfdocEncÚPDFNameÚ	PDFStreamÚPDFStreamFilterZCompressÚ	escapePDF)ÚstringWidth)ÚColorÚ	CMYKColorÚWhiterÚBlackerÚopaqueColor©Úfp_str)ÚisStrÚasNativeN)ZvisibleÚhiddenZvisibleNonPrintingZhiddenPrintable)r   éZ   é´   i  é   é   é   i @  i €  i   i   i   i    i   i  @ i  € i   i   i   i   i    i   )ZreadOnlyÚrequiredZnoExportZnoToggleToOffÚradioZ
pushButtonZradiosInUnisonÚ	multilineÚpasswordZ
fileSelectZdoNotSpellCheckZdoNotScrollÚcombZrichTextÚcomboZeditÚsortÚmultiSelectZcommitOnSelChangeé   é   é    é@   é€   é   i   )	Z	invisibler   ZnozoomZnorotateZnoviewÚreadonlyÚlockedZtogglenoviewZlockedcontentsÚprintÚSÚDÚBÚIÚU)ÚsolidÚdashedÚbevelledÚinsetÚ
underlinedc                 C   sP   t | tt| ƒd�}|dkrH|s(dg}nt|ttfƒs<|g}t|ƒ|d< t|ƒS )N)ÚWr-   r3   é   r.   )Údictr   Ú	_bsStylesÚ
isinstanceÚlistÚtupler   r   )ÚborderWidthÚborderStyleÚdashLenÚd© rB   úS/var/www/sistema_ama/venv/lib/python3.9/site-packages/reportlab/pdfbase/acroform.pyÚbsPDFG   s    rD   c                 C   s   t | ƒ dd¡S )Nú%z\045)r   Úreplace)ÚsrB   rB   rC   ÚescPDFQ   s    rH   c                 C   s0   t | tƒs,| }d} | ¡ D ]}| || O } q| S )Nr   )r;   ÚintÚsplit)rG   rA   ÚvÚxrB   rB   rC   Ú	makeFlagsT   s    
rM   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚPDFFromStringc                 C   s   t |ƒstd| ƒ‚|| _d S )Nz$need a unicode/bytes argument not %r)r   Ú
ValueErrorÚ_s)ÚselfrG   rB   rB   rC   Ú__init__]   s    zPDFFromString.__init__c                 C   s
   t | jƒS ©N)r   rP   )rQ   ÚdocumentrB   rB   rC   Úformatb   s    zPDFFromString.formatN©Ú__name__Ú
__module__Ú__qualname__rR   rU   rB   rB   rB   rC   rN   \   s   rN   c                   @   s   e Zd Zddd„Zdd„ ZdS )	Ú
RadioGroupÚ únoToggleToOff required radioc                 C   s4   |st dƒ‚|| _t|tƒ| _g | _|| _d | _d S )NzRadioGroup created with no name)rO   ÚTUrM   ÚfieldFlagValuesÚFfÚkidsÚTÚV)rQ   ÚnameÚtooltipÚ
fieldFlagsrB   rB   rC   rR   f   s    zRadioGroup.__init__c                 C   sŽ   | j }t|ƒ}|dk r(td| j|f ƒ‚t| jtdd„ | j D ƒƒtdƒt| jƒd�}| j	rht| j	ƒ|d< | j
r|t| j
ƒ|d< t|ƒ |¡}|S )	Nr   z#RadioGroup:%s has %d < 2 RadioBoxesc                 S   s   g | ]}|‘qS rB   rB   )Ú.0ÚkrB   rB   rC   Ú
<listcomp>v   ó    z%RadioGroup.format.<locals>.<listcomp>ÚBtn)r_   ZKidsÚFTra   rb   r]   )r`   ÚlenrO   ra   r9   r_   r   r   r   rb   r]   r   rU   )rQ   Údocr`   rA   ÚrrB   rB   rC   rU   o   s    üzRadioGroup.formatN)r[   r\   rV   rB   rB   rB   rC   rZ   e   s   
	rZ   c                 C   s<   t | tƒr$dd dd„ | jD ƒ¡ S t | tƒr4| jS t| ƒS )Nz[%s]r[   c                 s   s   | ]}t |ƒV  qd S rS   ©Ú_pdfObjToStr)rf   ÚerB   rB   rC   Ú	<genexpr>ƒ   ri   z_pdfObjToStr.<locals>.<genexpr>)r;   r   ÚjoinÚsequencerN   rP   Ústr)ÚobjrB   rB   rC   rp   �   s
    

rp   c                   @   s°  e Zd Zddddddddd	d
dddœZdd„ Zedd„ ƒZdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zd`d#d$„Zedad'd(„ƒZd)d*„ Zd+d,„ Zd-d.„ Zed/d0„ ƒZed1d2„ ƒZd3d4„ Zdbd9d:„Zdcd<d=„Zd>d?„ Zdddddd d@dAd"dBg g dCdDfdEdF„ZdGdH„ ZdddKdL„ZdedMdN„ZdIddddd d@dAd6d6ddd7dId&d&ddd"dg fdOdP„ZdIddddd d@dAd6d6ddd7dQd&d&ddd"dg fdRdS„ZdTdU„ ZdVdW„ ZdXdY„ Z dZd[„ Z!d\d]„ Z"ed^d_„ ƒZ#dS )fr   ZHelvZHeBoZCourZCoBoZCoObZCoBOZHeObZHeBOZTimeZTiBoZTiItZTiBI)Ú	HelveticazHelvetica-BoldZCourierzCourier-BoldzCourier-ObliquezCourier-BoldObliquezHelvetica-ObliquezHelvetica-BoldObliquezTimes-Romanz
Times-BoldzTimes-ItaliczTimes-BoldItalicc                 K   s@   i | _ t |¡| _i | _g | _i | _i | _i | _d | _	i | _
d S rS   )ZreferenceMapÚweakrefÚrefÚ_canvÚfontsÚfieldsÚ_radiosÚ_refMapÚ
_pdfdocencÚsigFlagsÚextras)rQ   ÚcanvÚkwdsrB   rB   rC   rR   —   s    zAcroForm.__init__c                 C   s$   |   ¡ }|d u r td| jj ƒ‚|S )Nz%s.canv is no longer available)rz   rO   Ú	__class__rW   )rQ   rz   rB   rB   rC   r‚   ¢   s    zAcroForm.canvc                 C   s   d|| j | f S )Nz/Font << /%s %s >>)r{   )rQ   ÚfrB   rB   rC   ÚfontRef©   s    zAcroForm.fontRefc                    s¦   t t‡ fdd„ˆ jD ƒƒd�}ˆ jr.ˆ j|d< ˆ jrˆttˆ j ¡ ƒƒ}‡ fdd„|D ƒ}td|d  ƒ|d< t	d	ˆ j
d
 |¡f ƒ|d< | ˆ j¡ t|ƒ |¡}|S )Nc                    s   g | ]}ˆ   |¡‘qS rB   )ÚgetRef©rf   r…   ©rQ   rB   rC   rh   ®   ri   z#AcroForm.format.<locals>.<listcomp>)ZFieldsZSigFlagsc                    s   g | ]}ˆ   |¡‘qS rB   )r†   rˆ   r‰   rB   rC   rh   ³   ri   z/%s 0 Tf 0 gr   ÚDAz)<< /Encoding
<<
/RLAFencoding
%s
>>
%s
>>Ú
ZDR)r9   r   r|   r€   r{   r<   ÚsortedÚkeysr   rN   Ú	encRefStrrs   Úupdater�   r   rU   )rQ   rm   rA   ZFKÚFrn   rB   r‰   rC   rU   ¬   s    ÿzAcroForm.formatc                 C   s0   |d u s|j dkrdS t|tƒr(| ¡ S | ¡ S )Nr   rB   )Úalphar;   r   ZcmykZrgb)rQ   ÚcrB   rB   rC   Ú
colorTupleº   s    zAcroForm.colorTuplec                 C   s&   |   |¡}t|Ž t|ƒdkr dnd S )Nr   z kz rg©r“   r   rl   ©rQ   r’   ÚtrB   rB   rC   ÚstreamFillColorÄ   s    
zAcroForm.streamFillColorc                 C   s&   |   |¡}t|Ž t|ƒdkr dnd S )Nr   z Kz RGr”   r•   rB   rB   rC   ÚstreamStrokeColorÈ   s    
zAcroForm.streamStrokeColorÚcircleÚsquareNr   r2   é   r8   c                    s:  g j }ˆ}|dkrò|dƒ ˆ  |¡}|dƒ |d kræˆ  |¡}|d }ˆ| }|}|	dkrd|dƒ n*|	dv rŽ|	dkr‚d	t|ƒ }nd
}|dƒ |	dv ræd| }ˆ| }|}t|dƒ}|}|dkrÊ|| }}ˆ  |¡}ˆ  |¡}|dƒ |dƒ �nŠ|dk�r|‡ ‡fdd„}ˆd }ˆ  |¡}|dƒ |||ƒƒ |dƒ |dƒ |d k�r||dƒ ˆ  |¡}|d }ˆ| }|	dk�r€|dƒ n>|	dv �r¾|	dk�ršd}nd
}|dƒ |||| ƒƒ |dƒ |dƒ |	dv �r|d| }ˆ| }t|dƒ}t|dƒ}d}d}|	dk�r|| }}|dk�r$|| }}ˆ  |¡}ˆ  |¡}|dƒ |||| d|d �ƒ |d!ƒ |||| d|d �ƒ |d"ƒ |d#k�rˆ  |¡}ˆ  |¡}|d$ƒ t| }|dk�ræ|dk�ræ||t|ˆ|  d%ƒd ƒƒ |dƒ n|| ˆˆ| ¡ƒ |dƒ d& 	|j
¡tƒ   d'd(¡ d)d&¡}ˆ jˆˆ|td*ƒd+�S ),Nrš   Úqz11 g 1 G %(streamFill)s 0 0 %(size)s %(size)s re fç      à?r6   zC%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(size)s %(hbw)s l s©r3   r5   r4   r2   r3   z
 [%s ] 0 dr[   zQ%(streamStroke)s%(dash)s %(borderWidth)s w %(hbw)s %(hbw)s %(smbw)s %(smbw)s re s©r4   r5   r   r.   a5  %(bbs0)s %(borderWidth)s %(borderWidth)s m %(borderWidth)s %(smbw)s l %(smbw)s %(smbw)s l %(sm2bw)s %(sm2bw)s l %(_2bw)s %(sm2bw)s l %(_2bw)s %(_2bw)s l f %(bbs1)s %(smbw)s %(smbw)s m %(smbw)s %(borderWidth)s l %(borderWidth)s %(borderWidth)s l %(_2bw)s %(_2bw)s l %(sm2bw)s %(_2bw)s l %(sm2bw)s %(sm2bw)s l fÚQr™   c                    s   ˆ j ˆ| fi |¤ŽS rS   )ÚcircleArcStream)Ú_rZ_casKwds©rQ   ÚsizerB   rC   Ú<lambda>ú   ri   z%AcroForm.checkboxAP.<locals>.<lambda>zq 1 g 1 G %(streamFill)sr…   zGq %(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(size)s %(hbw)s l s Qz	 [3 ] 0 dz*%(streamStroke)s%(dash)s %(borderWidth)s wrG   r8   )r   r   )r   r8   r5   zq %(bbs0)s %(borderWidth)s wT)ÚrotatedÚarcszS Q %(bbs1)s qzS QÚYesz'q %(textFillColor)s %(textStrokeColor)sr   r‹   ú  ú ú

z<< /ProcSet [/PDF] >>©Z	Resources)Úappendr—   r˜   r   r   r   ÚcbmarksÚmaxÚscaledRenderrs   Ú__self__ÚvarsrF   Ú
makeStreamrN   )rQ   ÚkeyÚvalueÚbuttonStyleÚshapeÚ	fillColorÚborderColorÚ	textColorr>   r?   r¤   r@   ÚstreamÚdsÚ
streamFillÚstreamStrokeÚhbwZsmbwÚdashÚ_2bwZsm2bwÚbbs0Úbbs1Zcasrn   Z_3bwhZa0Za1ZtextFillColorZtextStrokeColorZcbmrB   r£   rC   Ú
checkboxAPÌ   s¬    



























"þzAcroForm.checkboxAP©r   r   r   r8   Fc           
      C   s   g j }|jj}| d }| d }| |9 } ||9 }||9 }td| ƒ}t|ƒ}t|ƒ}|rZdnd}	|dƒ d|v rˆ|ƒ dkr€|d	ƒ |d
ƒ d|v rª|ƒ dkr¢|dƒ |dƒ d|v rÌ|ƒ dkrÄ|dƒ |dƒ d|v rî|ƒ dkræ|dƒ |dƒ d |j¡tƒ  S )Nr�   g      4@gÍh†¬á?z0.7071 0.7071 -0.7071 0.7071z1 0 0 1z%(mx)s %(hsize)s %(hsize)s cmr   r   z	%(r)s 0 mz#%(r)s %(cp)s %(cp)s %(r)s 0 %(r)s cz	0 %(r)s mz&-%(cp)s %(r)s -%(r)s %(cp)s -%(r)s 0 cr   z
-%(r)s 0 mz(-%(r)s -%(cp)s -%(cp)s -%(r)s 0 -%(r)s cr8   z
0 -%(r)s mz%%(cp)s -%(r)s %(r)s -%(cp)s %(r)s 0 cr‹   )r­   r±   Ú__len__r   rs   r²   )
r¤   rn   r§   r¦   ÚRZrlenZhsizer…   ÚcpZmxrB   rB   rC   r¡   4  s2    zAcroForm.circleArcStreamc                 C   s^   t | }||  }}|d }tt|d|ƒƒ}||kr@||| 9 }|d||   }	d}
dtƒ  S )Nç333333ó?ZZapfDingbatsr�   r   zCBT %(iFontName)s %(fs)s Tf %(dx)s %(dy)s Td %(fs)s TL (%(c)s) Tj ET)ÚZDSymsÚfloatr   r²   )rQ   r’   r¤   r¼   Ú	iFontNamer7   ÚHÚfsÚwÚdxÚdyrB   rB   rC   ÚzdMarkP  s    zAcroForm.zdMarkc                 C   s   | j j |¡S rS   )r‚   Ú_docZ	Reference©rQ   rv   rB   rB   rC   r‡   \  s    zAcroForm.getRefc                 C   s   t |  |¡ | jj¡ƒS rS   )r   r‡   rU   r‚   rÓ   rÔ   rB   rB   rC   Ú	getRefStr_  s    zAcroForm.getRefStrc                 C   s„   t |tƒst | tƒst |tƒrR| p.tddddƒ|p>tddddƒ|pNtddddƒfS | p`tdddƒ|pntdddƒ|p|tdddƒfS d S )	Nr   çÍÌÌÌÌÌì?g¸…ëQ¸¾?gj¼t“Ä?gš™™™™™¹?gš™™™™™é?g`åÐ"Ûùê?r   )r;   r   r   )r–   Úbr…   rB   rB   rC   Ú	stdColorsb  s    4zAcroForm.stdColorsc                    s@   | dkr6| dkrt nt‰ ‡ fdd„|||fD ƒ\}}}|||fS )NÚNrÇ   c                    s   g | ]}ˆ |d ƒ‘qS )rÖ   rB   )rf   r’   ©ÚfuncrB   rC   rh   m  ri   z'AcroForm.varyColors.<locals>.<listcomp>)r   r   )r´   r–   r×   r…   rB   rÚ   rC   Ú
varyColorsi  s    zAcroForm.varyColorsc                 C   sÔ   |rÐ| j }| ¡  | ¡  |d krDd| }| |¡ | |	¡ d}nd }}|d| 8 }|d| 8 }||7 }||7 }| |
¡ |dkrž|j|||||dd� n*t||ƒd }|j|| || ||dd� | 	¡  d S )Nr�   r   r   r   rš   )ZstrokeÚfill)
r‚   Z	saveStateZresetTransformsZsetLineWidthZsetStrokeColorZsetFillColorZrectÚminr™   ZrestoreState)rQ   rL   ÚyÚwidthÚheightÚforceBorderr·   r?   r>   r¹   r¸   r‚   r¿   rG   rn   rB   rB   rC   ÚcheckForceBorderp  s(    


zAcroForm.checkForceBorderÚcheckr   r,   r   c           !      C   sü  |rdnd}|   |||¡\}}}| j}|r<| j |
|¡\}
}|j}i }dD ]Ž}i }|  ||||¡\}}}dD ]\}| j||||||||||	|d�}|j| jv rª| j|j }n|  |¡}|| j|j< |||< qlt	|ƒ||< ~qJt
tdƒ| ¡ t|ƒt|ƒt|
||
|	 ||	 fƒt	|ƒtdƒtdƒt|tƒt|tƒtd	ƒd
�}|�rJt|ƒ|d< |�s^dt| jƒ }|�rtt|||ƒ|d< t|ƒ|d< t
dt|  t|  |¡ƒt|  |¡ƒd�} t	| ƒ|d< t	|ƒ}| j |¡ | j |  |¡¡ |  |
||	|	||||||¡
 d S )Nr¨   ÚOffÚNDR)r¨   rå   ©	r¶   r·   r¸   r¹   rº   r>   r?   r¤   r@   rj   ÚWidgetÚAnnotrÙ   )rk   ÚPrb   ÚASÚRectÚAPÚSubtypeÚTyper�   r_   rÍ   r]   úAFF%03dÚBSra   ú(%s)©ÚCAÚBCÚBGÚMK)rØ   r‚   ÚabsolutePositionrÓ   rÜ   rÄ   Ú
_af_refstrr~   r‡   r   r9   r   ÚthisPageRefr   rM   ÚannotationFlagValuesr^   r   rl   r|   rD   rÊ   r“   Ú_addAnnotationr­   rã   )!rQ   Úcheckedr¶   r·   r¸   r¹   rº   r>   r?   r¤   rL   rß   rd   rc   ÚannotationFlagsre   râ   Úrelativer@   ÚinitialValuer‚   rm   rí   r´   ÚAPVÚtCÚbCÚfCrµ   Úapry   ZCBr÷   rB   rB   rC   Úcheckboxˆ  sx    õ

ô
ýzAcroForm.checkboxr\   c           #      C   s�  || j vr>t|||d�}|  |¡|_|| j |< | j |j¡ n.| j | }t|tƒ}||jkrlt	d||f ƒ‚|s€t	d||f ƒ‚|rˆ|nd}|  
|||¡\}}}||krØ|jd urÒ|j|krØt	d|||jf ƒ‚n||_| j}|rô| j ||¡\}}|j}i }dD ]¦}i }|  ||||¡\}}}|dfD ]n}| j|||k�r@dnd|||||||	|
|d�}|j| jv �rv| j|j } n|  |¡} | | j|j< | ||< �q(t|ƒ||< ~�qttd	ƒ| ¡ t|ƒt||||
 ||
 fƒt|ƒtd
ƒtdƒt|tƒ|jtdƒd�
}!tdt|  t|  |¡ƒt|  |¡ƒd�}"|�r>t||	|ƒ|!d< t|"ƒ|!d< t|!ƒ}!| j |!¡ |j |  |!¡¡ |  |||
|
|||	|||¡
 d S )N)rd   re   z(radio.%s.%s created with different flagszbad value %r for radio.%srå   z2radio.%s.%s sets initial value conflicting with %sræ   r¨   rç   rj   rè   ré   rÙ   )
rk   rê   rë   rì   rí   rî   rï   r�   ZParentrÍ   rò   ró   rñ   r÷   )r}   rZ   r‡   Z_refr|   r­   rM   r^   r_   rO   rØ   rb   r‚   rø   rÓ   rÜ   rÄ   rù   r~   r   r9   r   rú   r   rû   rÊ   r“   rD   rü   r`   rã   )#rQ   rµ   Úselectedr¶   r·   r¸   r¹   rº   r>   r?   r¤   rL   rß   rd   rc   rþ   re   râ   rÿ   r@   Úgroupr   r‚   rm   rí   r´   r  r  r  r  rK   r  ry   ZRBr÷   rB   rB   rC   r   Û  sŒ    






õ
ô
ýzAcroForm.radioc                 K   sŽ   t g d¢ƒ|d< t dd||gƒ|d< tdƒ|d< tdƒ|d< d	|d
< tt|ƒ|| jjjr`tƒ gnd d�}|d dd„ t	| 
¡ ƒD ƒ¡ |_|S )N)ç      ð?ç        r
  r	  r
  r
  ZMatrixr   ZBBoxZFormrî   ZXObjectrï   r   ZFormType)Úfiltersr‹   c                 s   s"   | ]\}}d |t |ƒf V  qdS )z%s=%rNro   )rf   rg   rK   rB   rB   rC   rr   P  ri   z&AcroForm.makeStream.<locals>.<genexpr>)r   r   r	   r   r‚   rÓ   Úcompressionr
   rs   rŒ   Úitemsrù   )rQ   rà   rá   r»   r.   rG   rB   rB   rC   r³   >  s    ý"zAcroForm.makeStreaméx   é$   Ú	textfieldz0.600006 0.756866 0.854904 rgz0 gc           ,      C   s¬  g j }t|ƒr |  |¡}|dƒ |
d kr¢|
dkr¢t|ƒr¢|
d }||
 }||
 }d|
 }|dv r¶|| }|| }|dkr�d}|s„|rŠd}q˜d	}nd
}d	}|dƒ nd } }}
|}|}d}t|ƒ�r|
�r|  |¡}|dkræ|dƒ n6|dv �r|dk�rdt|ƒ } d}nd|
 } |dƒ d|
 }!||! }"||! }#|  |	¡}$|dƒ d| }%|dk�rt|#|% ƒ}&|#t|&ƒ }%|&t|ƒk�rŒd}'t|ƒ}&nnt|ƒdk�rÞ|�r¨|d nd}'|'�rú|'|&k �rÂd}'nt|ƒ|& }(|'|(k�rú|(}'n|d |&k �ròd}'n|d }'t|ƒ})|'|& }(|(|)k�r|(|) }'t|)|'|& ƒ}*|�r€|'}(|| |% })||ƒ |(|*k �r€|(|v �rl|dt|)ƒ ƒ |)|%8 })|(d7 }(�qH|'}(|| | })|dƒ |(|*k �r^|dƒ |(|'k�r¼|dƒ ||(|v �rÌ|ndƒ |dt|)ƒt	||( ƒf ƒ |)|%8 })|(d7 }(|d ƒ �q˜nR|dƒ || | })|d!ƒ | 
d"¡D ]"}+|d|)t	|+ƒf ƒ |)|%8 })�q2|d ƒ t|%ƒ}%|d#ƒ d" |j¡tƒ   d$d%¡ d&d"¡}| j|||td'tƒ  ƒd(�S ))Nz,%(streamFill)s
0 0 %(width)s %(height)s re
fr   r�   r   rŸ   r4   z1 gz-0.250977 0.749023 -0.250977 rgz.75293 gz	.501953 ga)  %(bbs0)s
%(borderWidth)s %(borderWidth)s m
%(borderWidth)s %(bwh)s l
%(bww)s %(bwh)s l
%(bw2w)s %(bw2h)s l
%(_2bw)s %(bw2h)s l
%(_2bw)s %(_2bw)s l
f
%(bbs1)s
%(bww)s %(bwh)s m
%(bww)s %(borderWidth)s l
%(borderWidth)s %(borderWidth)s l
%(_2bw)s %(_2bw)s l
%(bw2w)s %(_2bw)s l
%(bw2w)s %(bw2h)s l
fr[   r6   zD%(streamStroke)s %(borderWidth)s w 0 %(hbw)s m %(width)s %(hbw)s l srž   r3   z
[%s ] 0 d
z[] 0 dz
%s wz>%(streamStroke)s
%(dash)s
%(hbw)s %(hbw)s %(bww)s %(bwh)s re
sr   z5/Tx BMC 
q
%(_2bw)s %(_2bw)s %(w4bw)s %(h4bw)s re
W
nrÉ   Úlistboxr   z(%%(_2bw)s %s %%(w4bw)s %%(leading)s re
fz0 g
0 G
%(undash)sZBTz/%(iFontName)s %(fontSize)s Tfz%(textFill)sz%%(_4bw)s %s Td
(%s) TjÚETz.BT
/%(iFontName)s %(fontSize)s Tf
%(textFill)sr‹   zQ
EMC
r©   rª   r«   z/<< /ProcSet [/PDF /Text] /Font %(rFontName)s >>r¬   )r­   r   r—   r˜   r   rI   rË   rl   rÞ   rH   rJ   rs   r±   r²   rF   r³   rN   ),rQ   r´   rµ   rÌ   Ú	rFontNameÚfontSizer·   r¸   r¹   rº   r>   r?   rà   rá   r@   ÚwkindÚlabelsr0   Zsel_bgZsel_fgr»   r½   r¿   ZbwwZbwhrÁ   Zbw2wZbw2hrÂ   rÃ   Zundashr¾   rÀ   Z_4bwZw4bwZh4bwZtextFillÚleadingZnoptsZi0Úirß   ZilimÚlinerB   rB   rC   ÚtxAPS  sÀ    














"þzAcroForm.txAPc                 C   sb   |d u rd}|| j vr"td| ƒ‚| j | }|  td||| jf ƒ¡}|| jvrZ|| j|< ||fS )Nrw   z7form font name, %r, is not one of the standard 14 fontszF<< /BaseFont /%s /Subtype /Type1 /Name /%s /Type /Font /Encoding %s >>)ÚformFontNamesrO   rÕ   rN   rŽ   r{   )rQ   ÚfontNameÚfnry   rB   rB   rC   ÚmakeFontÒ  s    

ÿ


zAcroForm.makeFontr[   éd   c           ,      C   sn  |   |¡\}}|d u rd}|  |||¡\}}}| j}|rJ| j |	|
¡\}	}
|j}d||f }t|tƒ}|dk�rfd}|dkrˆ|td O }g }g }g }g } g }!t|tt	fƒsºt
d||f ƒ‚|D ]”}"t|"ƒrÞ| t|"ƒ¡ |"}#n`t|"tt	fƒ�r.t|"ƒdk�r
|"d	  }"}#n|"\}#}"| tt|"ƒt|#ƒgƒ¡ nt
d
||"f ƒ‚| |"¡ |! |#¡ q¾t|ƒ}|�r\t|tt	fƒ�sx|g}|D ]\}"|"|v�r¸|"|!v�rªtd||"||!f ƒ‚n||! |"¡ }"|  | |"¡¡ | t|"ƒ¡ �q||  ¡  |td @ �rþt|ƒdk�r.|dk�r|!| d	  }n|d d… }|d d… }t|ƒdk�rD|d	 nt|ƒ}t|!| |d�}$nt|ƒ}n.g  } }i }$d}t|ƒ�sŒt
d| ƒ‚t|ƒ}i }dD ]‚}%|  |%|||¡\}&}'}(| j|%||||f|(|'|&|||||dœ|$¤Ž})|)j| jv �rþ| j|)j }*n|  |)¡}*|*| j|)j< |*||%< �qœtt|ƒ| ¡ ||t|	|
|	| |
| fƒt|ƒtdƒtdƒt|tƒ|td|||  |¡f ƒd�}!|�rŽ||!d< | �r t| ƒ|!d< |�r®||!d< |�rÀt|ƒ|!d< |�sÔdt| jƒ }t|ƒ|!d< tt|  |¡ƒd�}+|�rt |||ƒ|!d< t|  |¡ƒ|+d< t|+ƒ|!d< t|!ƒ}!| j !|!¡ | j |  |!¡¡ |  "|	|
|||d ||||¡
 d S )!Né   z
<</%s %s>>r  ZChÚchoicer!   z%s options=%r is wrong typer   r   z%s option %r is wrong typez3%s value %r is not in option
values %r
or labels %rr#   )r  r0   r  ZTxz textfield value=%r is wrong typerÙ   )r¸   r¹   rº   r>   r?   rà   rá   r@   rè   ré   z/%s %d Tf %s)rk   rê   rb   ZDVrì   rí   rî   rï   r�   r_   rŠ   ÚOptr0   ZMaxLenr]   rð   ra   )rö   rñ   rõ   r÷   rš   )#r  rØ   r‚   rø   rÓ   rM   r^   r;   r<   r=   Ú	TypeErrorr   r­   r   rl   r   rO   Úindexr"   r9   rÜ   r  rù   r~   r‡   r   rú   r   rû   r—   r|   r“   rD   rü   rã   ),rQ   rµ   r¸   r¹   rº   r>   r?   rà   rá   rL   rß   rd   rc   rþ   re   râ   rÿ   Úmaxlenr  r  r  Úoptionsr@   r  rÌ   r‚   rm   r_   rk   rb   r"  rí   r0   ZTFrK   ÚlZlbextrasr´   r  r  r  r  ry   r÷   rB   rB   rC   Ú
_textfieldÞ  sì    







ûóò
óÿzAcroForm._textfieldc                 C   s4   | j |||||||||	|
||||||||||dd�S )Nr  )rµ   r¸   r¹   rº   r>   r?   rà   rá   rL   rß   rd   rc   rþ   re   râ   rÿ   r%  r  r  r@   r  ©r(  )rQ   rµ   r¸   r¹   rº   r>   r?   rà   rá   rL   rß   rd   rc   rþ   re   râ   rÿ   r%  r  r  r@   rB   rB   rC   r  z  s.    ëzAcroForm.textfieldc                 C   s6   | j |||||||||	|
||||||||||d|d�S )Nr  ©rµ   r¸   r¹   rº   r>   r?   rà   rá   rL   rß   rd   rc   rþ   re   râ   rÿ   r%  r  r  r@   r  r&  r)  ©rQ   rµ   r¸   r¹   rº   r>   r?   rà   rá   rL   rß   rd   rc   rþ   re   râ   rÿ   r  r  r@   r%  r&  rB   rB   rC   r  ¨  s0    êzAcroForm.listboxr!   c                 C   s6   | j |||||||||	|
||||||||||d|d�S )Nr!  r*  r)  r+  rB   rB   rC   r!  ×  s0    êzAcroForm.choicec                 K   s   d|d< | j f i |¤Ž dS )zSsame as checkbox except the x and y are relative to the canvas coordinate transformTrÿ   N)r  ©rQ   rƒ   rB   rB   rC   ÚcheckboxRelative  s    zAcroForm.checkboxRelativec                 K   s   d|d< | j f i |¤Ž dS )zPsame as radio except the x and y are relative to the canvas coordinate transformTrÿ   N)r   r,  rB   rB   rC   ÚradioRelative  s    zAcroForm.radioRelativec                 K   s   d|d< | j f i |¤Ž dS ©zTsame as textfield except the x and y are relative to the canvas coordinate transformTrÿ   N©r  r,  rB   rB   rC   ÚtextfieldRelative  s    zAcroForm.textfieldRelativec                 K   s   d|d< | j f i |¤Ž dS r/  r0  r,  rB   rB   rC   ÚlistboxRelative  s    zAcroForm.listboxRelativec                 K   s   d|d< | j f i |¤Ž dS r/  r0  r,  rB   rB   rC   ÚchoiceRelative  s    zAcroForm.choiceRelativec                 C   s   | j stdƒ| _ |  | j ¡S )Na  <</Type /Encoding /Differences [24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde 39 /quotesingle 96 /grave 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction /guilsinglleft /guilsinglright /minus /perthousand /quotedblbase /quotedblleft /quotedblright /quoteleft /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron 160 /Euro 164 /currency 166 /brokenbar 168 /dieresis /copyright /ordfeminine 172 /logicalnot /.notdef /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu 183 /periodcentered /cedilla /onesuperior /ordmasculine 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis]>>)r   rN   rÕ   r‰   rB   rB   rC   rŽ     s    
zAcroForm.encRefStr)	r™   rš   NNNr   r2   r›   r8   )rÅ   F)Frä   rš   NNNr   r2   r›   r   r   NNr,   r   FFr8   )NFr™   r™   NNNr   r2   r›   r   r   NNr,   r\   FFr8   )r[   NNNr   r2   r  r  r   r   NNr,   r[   FFr  NNNNr8   )r[   NNNr   r2   r  r  r   r   NNr,   r[   FFr  NNr8   )$rW   rX   rY   r  rR   Úpropertyr‚   r†   rU   r“   r—   r˜   rÄ   Ústaticmethodr¡   rÒ   r‡   rÕ   rØ   rÜ   rã   r  r   r³   r  r  r(  r  r  r!  r-  r.  r1  r2  r3  rŽ   rB   rB   rB   rC   r   ˆ   s‚  ô

         õ
h

                  î
T                   í
cí
                      ê
                     ì
/ë
0ë
0r   c                   @   s,   e Zd Zd ¡ ZdZd
dd„Zddd„Zd	S )ÚCBMarkzm l c h)r   r   r8   r   çš™™™™™©?c                 C   s*   || _ |\| _| _| _| _|| _|| _d S rS   )ÚopsÚxminÚyminÚxmaxÚymaxÚpointsÚslack)rQ   r8  r=  Zboundsr>  rB   rB   rC   rR   )  s    zCBMark.__init__r   c                    sP  |d|   }}| j ‰| j‰| jˆ }| jˆ }| jt||ƒ }|d|  t|ƒ ‰|d|  t|ƒ ‰tˆˆƒ ‰‰|ˆ9 }|ˆ9 }||| d  ‰ ||| d  ‰‡ ‡‡fdd„}‡‡‡fdd„}	| j}
| j}g j	}d}| j
}| jD ]R}|| }t|ƒD ]0}|||| ƒƒ ||	||d  ƒƒ |d7 }qü||
| ƒ qè|dƒ d	 |j¡S )
a¾  
        >>> print(cbmarks['check'].scaledRender(20))
        12.97075 14.68802 m 15.00139 17.16992 l 15.9039 18.1727 17.93454 18.67409 19.2883 18.67409 c 19.46379 18.27298 l 17.13231 15.51532 l 11.91783 8.62117 l 8.307799 3.030641 l 7.430362 1.526462 l 7.305014 1.275766 7.154596 .97493 6.9039 .824513 c 6.577994 .674095 5.825905 .674095 5.47493 .674095 c 4.672702 .674095 4.497214 .674095 4.321727 .799443 c 4.071031 .97493 3.945682 1.325905 3.770195 1.67688 c 3.218663 2.830084 2.240947 5.337047 2.240947 6.590529 c 2.240947 7.016713 2.491643 7.21727 2.817549 7.442897 c 3.344011 7.818942 4.0961 8.245125 4.747911 8.245125 c 5.249304 8.245125 5.299443 7.818942 5.449861 7.417827 c 5.951253 6.239554 l 6.026462 6.038997 6.252089 5.337047 6.527855 5.337047 c 6.778552 5.337047 7.079387 5.913649 7.179666 6.089136 c 12.97075 14.68802 l h f
        >>> print(cbmarks['cross'].scaledRender(20))
        19.9104 17.43931 m 12.41908 10 l 19.9104 2.534682 l 18.37572 1 l 10.9104 8.491329 l 3.445087 1 l 1.910405 2.534682 l 9.427746 10 l 1.910405 17.46532 l 3.445087 19 l 10.9104 11.50867 l 18.37572 19 l 19.9104 17.43931 l h f
        >>> print(cbmarks['circle'].scaledRender(20))
        1.872576 9.663435 m 1.872576 14.64958 5.936288 18.61357 10.89751 18.61357 c 15.8338 18.61357 19.87258 14.59972 19.87258 9.663435 c 19.87258 4.727147 15.8338 .688366 10.89751 .688366 c 5.936288 .688366 1.872576 4.677285 1.872576 9.663435 c h f
        >>> print(cbmarks['star'].scaledRender(20))
        10.85542 18.3253 m 12.90361 11.84337 l 19.84337 11.84337 l 14.25301 7.650602 l 16.42169 1 l 10.85542 5.096386 l 5.289157 1 l 7.481928 7.650602 l 1.843373 11.84337 l 8.759036 11.84337 l 10.85542 18.3253 l h f
        >>> print(cbmarks['diamond'].scaledRender(20))
        17.43533 9.662031 m 15.63282 7.484006 l 10.85118 .649513 l 8.422809 4.329624 l 5.919332 7.659249 l 4.267038 9.662031 l 6.16968 12.0153 l 10.85118 18.64951 l 12.75382 15.4701 15.00695 12.49096 17.43533 9.662031 c h f
        r   r�   c                    s   t | ˆ ˆ ˆ  ƒS rS   r   ©rK   )rÐ   Úsxr9  rB   rC   r¥   J  ri   z%CBMark.scaledRender.<locals>.<lambda>c                    s   t | ˆ ˆ ˆ  ƒS rS   r   r?  )rÑ   Úsyr:  rB   rC   r¥   K  ri   r   r   r…   rª   )r9  r:  r;  r<  r>  rÞ   rË   ÚopNamesÚopCountr­   r=  r8  Úrangers   r±   )rQ   r¤   r¼   r7   rÍ   rÏ   Úhr>  ZxscZyscrB  rC  ÚCr  r=  Úopr’   Ú_rB   )rÐ   rÑ   r@  rA  r9  r:  rC   r°   /  s:    



zCBMark.scaledRenderN)r7  )r   )rW   rX   rY   rJ   rB  rC  rR   r°   rB   rB   rB   rC   r6  %  s   
r6  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   )TéÎ  é"  i  i…  éC  i­  i”  éÁ  iÊ  rL  éÑ  i±  it  rK  i¤  i0  i  éQ   éñ   é   éì   é   éæ   éÿÿÿÿéÜ   iùÿÿÿéÏ   éóÿÿÿé±   rW  é£   rW  éƒ   rW  é|   rW  éu   iøÿÿÿék   rT  éf   é   é_   é   éI   rb  é"   é­   rc  éß   rc  éð   é,   éø   é9   i  éN   é  él   é!  é†   rm  éš   rm  éœ   rk  é¢   r)   é¶   éÑ   é¹   éÉ   éÂ   rd  éÍ   rd  é×   rd  éã   éÄ   éç   éË   rI  rJ  )rc  iôÿÿÿrM  iÂ  )r   r   r   r   r   r   r   r   r   r   r   r   r   r8   )é×  éx  i·  éZ  r}  é;   éœ  r   é}  i   é^   r   é#   r€  iD  r  r„  iy  rƒ  é´  r‚  i”  r�  r…  r}  r~  )r„  r   r}  r…  )r   r   r   r   r   r8   )r„  r  r„  rJ  éÆ   rL  é�  rL  éS  rL  éõ  i   r‰  r  r‰  é”   rˆ  éòÿÿÿr‡  r‹  r†  r‹  r„  é’   r„  r  )r„  r‹  r‰  rL  )r   r   r   r   r   r   r   r   r   r   r   r8   )é™  rL  iî  é´  é  rŽ  i&  é  i€  r‹  r�  rp  é²   r‹  i  r�  r„  rŽ  iB  rŽ  r�  rL  )r„  r‹  r�  rL  )
r   r   r   r   r   r   r   r   r   r8   )é0  r  iè  i  é)  r‹  éÈ   é…   r  i
  rc  r  én   i¸  r“  rL  iu  iB  iÏ  iË  r’  r  )rc  r‹  r’  rL  )rä   Zcrossr™   ZstarZdiamondÚ4Ú5r'  rÙ   ÚuÚ__main__),Ú__all__Zreportlab.pdfbase.pdfdocr   r   r   r   r   r   r	   r
   r   Zreportlab.pdfbase.pdfmetricsr   Zreportlab.lib.colorsr   r   r   r   r   Zreportlab.lib.rl_accelr   Zreportlab.lib.utilsr   r   rx   r9   ZvisibilitiesZorientationsr^   rû   r:   rD   rH   rM   rN   rZ   rp   r   r6  r®   rÊ   rW   ÚdoctestÚtestmodrB   rB   rB   rC   Ú<module>   sÎ   ,üüê÷û
	       $7ýýýýýë
