U
    '1ep                  W   @   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&dd
dd
d
d
d
d
ddddddddd
ddd
d<gd=d>d?d@dAdBdCdDdEdDdFdGdHdAdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdVdXdVdYdVdZdVd[d\d]dRd^d_d`dadbdbdcdddcdedcdfdgdhdidjdkdldmdndodndpdndqdldrd"dsdtdudvdwdddxdddydddzd{d|d}d=d>gTd~e&dd
d
d
d
d
d
d
d
d
d
d
d
d<gddddddddddddddddddddddddddgde&dddddd<gdddd>ddDddDddDddddddddddddddddgde&dd
d
d
d
d
d
d
d
d
d
d<gddDddddddddddqddddddddddDgde&dd
d
d
d
d
d
d
dd<g
dddddddddddcdddddDddddddgddZ'eddddddZ(e)dkrddl*Z*e*+  dS ))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   >/tmp/pip-unpacked-wheel-109iniqw/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   s     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>   s     z_pdfObjToStr.<locals>.<genexpr>)r;   r   joinsequencerN   rP   str)objrB   rB   rC   ro      s
    

ro   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 kr td| jj |S )Nz%s.canv is no longer available)ry   rO   	__class__rW   )rQ   ry   rB   rB   rC   r      s    zAcroForm.canvc                 C   s   d|| j | f S )Nz/Font << /%s %s >>)rz   )rQ   frB   rB   rC   fontRef   s    zAcroForm.fontRefc                    s   t t fdd jD d} jr. j|d<  jrt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      s     z#AcroForm.format.<locals>.<listcomp>)ZFieldsZSigFlagsc                    s   g | ]}  |qS rB   )r   r   r   rB   rC   rh      s     z/%s 0 Tf 0 gr   DAz)<< /Encoding
<<
/RLAFencoding
%s
>>
%s
>>
ZDR)r9   r   r{   r   rz   r<   sortedkeysr   rN   	encRefStrrr   updater   r   rU   )rQ   rl   rA   ZFKFrm   rB   r   rC   rU      s     
zAcroForm.formatc                 C   s0   |d k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   rk   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kr|	dkrd	t| }nd
}|d |	dkrd| }| }|}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kr|	dkrd}nd
}|d ||||  |d |d |	dk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|S rS   )circleArcStream)_rZ_casKwdsrQ   sizerB   rC   <lambda>       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scaledRenderrr   __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casrm   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|kr| dkr|d	 |d
 d|kr| dkr|d |d d|kr| dkr|d |d d|k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   rr   r   )
r   rm   r   r   RZrlenZhsizer   cpZmxrB   rB   rC   r   4  s:    
 
 
 
 zAcroForm.circleArcStreamc                 C   s^   t | }||  }}|d }tt|d|}||kr@||| 9 }|d||   }	d}
dt  S )N333333?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   ru   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jt?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  s     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   rm   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k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@   ri   WidgetAnnotr   )rj   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   rk   r{   rD   r   r   _addAnnotationr   r   )!rQ   checkedr   r   r   r   r   r>   r?   r   rL   r   rd   rc   annotationFlagsre   r   relativer@   initialValuer   rl   r   r   APVtCbCfCr   aprx   ZCBr   rB   rB   rC   checkbox  sz    

 
zAcroForm.checkboxr\   c           #      C   s  || j kr>t|||d}| ||_|| j |< | j|j n.| j | }t|t}||jkrlt	d||f |st	d||f |r|nd}| 
|||\}}}||kr|jd k	r|j|krt	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k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   ri   r   r   r   )
rj   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   rl   r   r   r  r  r  r  rK   r  rx   ZRBr   rB   rB   rC   r     s    








 zAcroForm.radioc                 K   s   t ddddddg|d< t dd||g|d< td|d< td|d	< d
|d< tt||| jjjrht gnd d}|ddd t	|
 D  |_|S )Ng      ?g        ZMatrixr   ZBBoxZFormr   ZXObjectr   r   ZFormType)filtersr   c                 s   s"   | ]\}}d |t |f V  qdS )z%s=%rNrn   )rf   rg   rK   rB   rB   rC   rq   P  s     z&AcroForm.makeStream.<locals>.<genexpr>)r   r   r	   r   r   r   compressionr
   rr   r   itemsr   )rQ   r   r   r   r.   rG   rB   rB   rC   r   >  s    "zAcroForm.makeStreamx   $   	textfieldz0.600006 0.756866 0.854904 rgz0 gc           ,      C   s  g j }t|r | |}|d |
d kr|
dkrt|r|
d }||
 }||
 }d|
 }|dkr|| }|| }|dkrd}|s|rd}qd	}nd
}d	}|d nd } }}
|}|}d}t|r|
r| |}|dkr|d n6|dkr|dkrdt| } d}nd|
 } |d d|
 }!||! }"||! }#| |	}$|d d| }%|dkrt|#|% }&|#t|& }%|&t|krd}'t|}&nnt|dkr|r|d nd}'|'r|'|&k rd}'nt||& }(|'|(kr|(}'n|d |&k rd}'n|d }'t|})|'|& }(|(|)kr|(|) }'t|)|'|& }*|r|'}(|| |% })|| |(|*k r|(|krl|dt|)  |)|%8 })|(d7 }(qH|'}(|| | })|d |(|*k r^|d |(|'kr|d ||(|kr|nd |dt|)t	||( f  |)|%8 })|(d7 }(|d  qnR|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   rk   r   rH   rJ   rr   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 krd}|| j kr"td| | j | }| td||| jf }|| jkrZ|| j|< ||fS )Nrv   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   rz   )rQ   fontNamefnrx   rB   rB   rC   makeFont  s    

  


zAcroForm.makeFontr[   d   c           ,      C   sn  |  |\}}|d k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st
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 ||" |!|# qt|}|r\t|tt	fsx|g}|D ]\}"|"|kr|"|!krtd||"||!f n||!|" }"| ||" |t|" q||   |td @ rt|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|st
d| t|}i }dD ]}%| |%|||\}&}'}(| j|%||||f|(|'|&|||||d|$})|)j| jkr| j|)j }*n| |)}*|*| j|)j< |*||%< qtt|| ||t|	|
|	| |
| ft|tdtdt|t|td||| |f d}!|r||!d< | rt| |!d< |r||!d< |rt||!d< |sd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)rj   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   rk   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   rl   r_   rj   rb   r   r   r0   ZTFrK   lZlbextrasr   r  r  r  r  rx   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 | 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 | 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 | 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 | dS r-  r.  r*  rB   rB   rC   listboxRelative  s    zAcroForm.listboxRelativec                 K   s   d|d< | j f | dS r-  r.  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,  r/  r0  r1  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   r6  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   sxr7  rB   rC   r   J  r   z%CBMark.scaledRender.<locals>.<lambda>c                    s   t |     S rS   r   r=  )r   syr8  rB   rC   r   K  r   r   r   r   r   )r7  r8  r9  r:  r<  r   r   opNamesopCountr   r;  r6  rangerr   r   )rQ   r   r   r7   r   r   hr<  ZxscZyscr@  rA  Cr  r;  opr   _rB   )r   r   r>  r?  r7  r8  rC   r   /  s:    



zCBMark.scaledRenderN)r5  )r   )rW   rX   rY   rJ   r@  rA  rR   r   rB   rB   rB   rC   r4  %  s   
r4  r8   i  i"  i  i  iC  i  i    i    i  it  i  i0  i  Q                     i   i         |   u   ik   f      _      I   "            ,      9   i  N   i  l   i!                                               )r]  irH  i    ix  i  iZ  ;   i  i}  i   ^   #   iD  iy    i  )rx  r   ru  ry     i  iS    i         )rx  r}  r{  rG  i  i  i    i&  i  i     i  iB  )rx  r}  r  rG  0  i  i  i)        r  i
  n   i  iu  iB  i  i  )r]  r}  r  rG  )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   rw   r9   ZvisibilitiesZorientationsr^   r   r:   rD   rH   rM   rN   rZ   ro   r   r4  r   r   rW   doctesttestmodrB   rB   rB   rC   <module>   s   ,
	       $7,66..
