B
    j@5\ºk  ã               @   sª	  d dl mZ d dlmZ d dlmZ d dlmZ yd dlmZmZm	Z	m
Z
 W n$ ek
rp   eZeZeZ	eZ
Y nX d dlmZ d dlmZ dd	lT dd	lT G d
d„ deƒZeƒ Ze edd d d ƒ¡ e edd d dƒ¡ e edd ddƒ¡ e edd dd ƒ¡ e eddd dƒ¡ e eddd d ƒ¡ e edddd ƒ¡ e eddddƒ¡ e edd d dƒ¡ e edd ddƒ¡ e edd dd ƒ¡ e eddd dƒ¡ e eddd d ƒ¡ e edddd ƒ¡ e eddddƒ¡ e eddddƒ¡ eƒ Ze edd d d!d"ƒ¡ e ed#d d d!d$ƒ¡ e ed%d d d!d&ƒ¡ e ed'd(d dd)ƒ¡ e ed*d d d!d+ƒ¡ e ed,d-d d!d.ƒ¡ e ed/d-d d!d0ƒ¡ e ed1d-d d!d2ƒ¡ e ed3d-d d!d4ƒ¡ e ed5d d d!d6ƒ¡ e ed7d8d d!d9ƒ¡ e ed:d(d dd;ƒ¡ e ed<d d d!d=ƒ¡ e ed>d-d d!d?ƒ¡ e ed@d-d d!dAƒ¡ e edBd d d!dCƒ¡ e edDd d d!dEƒ¡ e edFd(d ddGƒ¡ e edHd d d!dIƒ¡ e edJd d d!d"ƒ¡ e edKd8d d!dLƒ¡ e edMd-d d!dNƒ¡ e edOd8d d!dPƒ¡ e edQd-d d!dRƒ¡ e edSd-d!d!dTƒ¡ e edUd d d!dVƒ¡ e edWd-d d!dXƒ¡ e edYd d d!dZƒ¡ e ed[d d d!dVƒ¡ ej ej ¡ e!ƒ Z"e" e#d\dd]d^d_ƒ¡ e" e#d`d!dad^d_ƒ¡ e" e#dbdcddd_deƒ¡ e" e#dfdgdhded_ƒ¡ e" e#didjdkd^dlƒ¡ e" e#dmdndodpd^ƒ¡ e" e#dqdrdsdtduƒ¡ e" e#dvdwdxdydzƒ¡ e" e#d{d|d}d~dyƒ¡ e" e#dd€dd~dyƒ¡ e" e#d‚dƒd„d…d~ƒ¡ e" e#d†d‡dˆd‰dŠƒ¡ e" e#d‹dŒddŽdƒ¡ e" e#dd‘d’d^d“ƒ¡ e" e#d”d•d–d—d˜ƒ¡ e" e#d™dšd›dœdlƒ¡ e" e#ddždŸd_deƒ¡ e" e#d d¡d¢d^d_ƒ¡ e" e#d£d¤d¥d¦d§ƒ¡ e" e#d¨d©dªd«d¬ƒ¡ e" e#d­d®d¯d°d±ƒ¡ e" e#d²d³d´dµd_ƒ¡ e" e#d¶d·d¸d¹dºƒ¡ e" e#d»d¼d½d¾d¿ƒ¡ e" e#dÀdÁdÂdÃdÄƒ¡ e" e#dÅdÆdÇdÄdÈƒ¡ e" e#dÉdÊdËdÌdÍƒ¡ e" e#dÎdÏdÐdÑdÒƒ¡ e" e#dÓdÔdÕdÖd×ƒ¡ e" e#dØdÙdÚdÒdÖƒ¡ e" e#dÛdÜdÝdÞdÑƒ¡ e" e#dßdàdádÞdÒƒ¡ e" e#dâdãdäd‰dåƒ¡ e" e#dædçdèdéd‰ƒ¡ e" e#dêdëdìdédíƒ¡ e" e#dîdïdðdÌdñƒ¡ e" e#dòdódôd¦dõƒ¡ e" e#död÷dødùdúƒ¡ e" e#dûdüdýdþd_ƒ¡ e" e#dÿd dd^dƒ¡ e" e#dddd^d“ƒ¡ G dd„ deƒZ$G dd	„ d	e%ƒZ&d
d„ Z'G dd„ deƒZ(G dd„ deƒZ)G dd„ deƒZ*e*dƒZ+e*dƒZ,e*dƒZ-e*dƒZ.dd„ Z/dZ0dd„ Z1G dd„ de*ƒZ2G dd„ deƒZ3G dd „ d e%ƒZ4G d!d"„ d"e%ƒZ5G d#d$„ d$eƒZ6G d%d&„ d&e%ƒZ7G d'd(„ d(eƒZ8d)d*„ Z9d+d,„ Z:d-d.„ Z;d/d0„ Z<d1S (2  é    )Úabsolute_import)Úchr)Úrange)Úobject)ÚIntTypeÚ	FloatTypeÚLongTypeÚStringTypes)Údeepcopy)Úhexlifyé   )Ú*c               @   s   e Zd Zdd„ ZdS )ÚUnhandledParamErrorc             C   s   t  | d| ¡ d S )Nz#Don't know what to do with param %s)Ú	ExceptionÚ__init__)ÚselfÚparam© r   ú-lib/python3.7/site-packages/PyRTF/Elements.pyr      s    zUnhandledParamError.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   ZBlackZBlueéÿ   Z	TurquoiseZGreenZPinkZRedZYellowZWhitez	Blue Darké€   ZTealz
Green DarkZVioletzRed DarkzYellow Darkz	Grey DarkZGreyéÀ   ÚArialZswissé   Z020b0604020202020204zArial BlackZ020b0a04020102020204zArial NarrowZ020b0506020202030204zBitstream Vera Sans MonoZmodernZ020b0609030804020204zBitstream Vera SansZ020b0603030804020204zBitstream Vera SerifZromanZ02060603050605020204zBook AntiquaZ02040602050305030304zBookman Old StyleZ02050604050505020204Ú	CastellarZ020a0402060406010301zCentury GothicZ020b0502020202020204zComic Sans MSZscriptZ030f0702030302020204zCourier NewZ02070309020205020404zFranklin Gothic MediumZ020b0603020102020204ZGaramondZ02020404030301010803ÚGeorgiaZ02040502050405020303ZHaettenschweilerZ020b0706040902060204ZImpactZ020b0806030902050204zLucida ConsoleZ020b0609040504020204zLucida Sans UnicodeZ020b0602030504020204zMicrosoft Sans SerifzMonotype CorsivaZ03010101010201010101zPalatino LinotypeZ02040502050505030304ZPapyrusZ03070502060502030205ZSylfaenZ010a0502050306030303ZSymbolZ05050102010706020507ZTahomaZ020b0604030504040204zTimes New RomanZ02020603050405020304zTrebuchet MSZ020b0603020202020204ZVerdanaZLETTERzLetter 8 1/2 x 11 iniÐ/  ià=  ZLETTERSMALLzLetter Small 8 1/2 x 11 inZTABLOIDé   zTabloid 11 x 17 ini _  ZLEDGERé   zLedger 17 x 11 inZLEGALé   zLegal 8 1/2 x 14 iniÀN  Z	STATEMENTé   zStatement 5 1/2 x 8 1/2 inið  Z	EXECUTIVEé   zExecutive 7 1/4 x 10 1/2 iniÈ(  i;  ZA3é   zA3 297 x 420 mmiÆA  i]  ÚA4é	   zA4 210 x 297 mmiƒ.  ZA4SMALLé
   zA4 Small 210 x 297 mmZA5é   zA5 148 x 210 mmiÇ   ZB4é   zB4 (JIS) 250 x 354i_7  ihN  ZB5é   zB5 (JIS) 182 x 257 mmiO(  iì8  ZFOLIOé   zFolio 8 1/2 x 13 ini I  ZQUARTOé   zQuarto 215 x 275 mmiŸ/  ié<  Z10X14é   z10x14 ini@8  Z11X17é   z11x17 inZNOTEé   zNote 8 1/2 x 11 inZENV_9é   zEnvelope #9 3 7/8 x 8 7/8iÌ  iì1  ZENV_10é   zEnvelope #10 4 1/8 x 9 1/2i4  ip5  ZENV_11é   zEnvelope #11 4 1/2 x 10 3/8iP  i\:  ZENV_12é   zEnvelope #12 4 3/4 x 11i¸  ZENV_14é   zEnvelope #14 5 x 11 1/2i   i°@  ZCSHEETé   zC size sheet 18 x 24 iniPs  i ‡  ZDSHEETé   zD size sheet 22 x 34 iniÀ{  i@¿  ZESHEETé   zE size sheet 34 x 44 ini€÷  ZENV_DLé   zEnvelope DL 110 x 220mmi]  iº0  ZENV_C5é   zEnvelope C5 162 x 229 mmiá#  i¸2  ZENV_C3é   zEnvelope C3  324 x 458 mmiÃG  iqe  ZENV_C4é   zEnvelope C4  229 x 324 mmZENV_C6é   zEnvelope C6  114 x 162 mmi@  ZENV_C65é    zEnvelope C65 114 x 229 mmZENV_B4é!   zEnvelope B4  250 x 353 mmi/N  ZENV_B5é"   zEnvelope B5  176 x 250 mmiû&  ZENV_B6é#   zEnvelope B6  176 x 125 mmi°  Z	ENV_ITALYé$   zEnvelope 110 x 230 mmiñ2  ZENV_MONARCHé%   zEnvelope Monarch 3.875 x 7.5 ini0*  ZENV_PERSONALé&   z6 3/4 Envelope 3 5/8 x 6 1/2 inid  i$  Z
FANFOLD_USé'   zUS Std Fanfold 14 7/8 x 11 ini¬S  ZFANFOLD_STD_GERMANé(   z German Std Fanfold 8 1/2 x 12 ini€C  ZFANFOLD_LGL_GERMANé)   z"German Legal Fanfold 8 1/2 x 13 inc               @   s   e Zd Zddd„ZdS )Ú
StyleSheetNc             C   s0   |p
t tƒ| _|pt tƒ| _tƒ | _tƒ | _d S )N)r
   ÚStandardColoursÚColoursÚStandardFontsÚFontsÚAttributedListZ
TextStylesÚParagraphStyles)r   ZcoloursZfontsr   r   r   r   Ž   s    zStyleSheet.__init__)NN)r   r   r   r   r   r   r   r   rG      s   rG   c                   sx   e Zd ZdZdZdZdZdZeeeeegZd‡ fdd„	Z	d	d
„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z‡  ZS )ÚSectionr   r   r   r    r!   Nc                sx   t t| ƒ ¡  |ptj| _|  |¡ g | _g | _g | _	g | _
|  |pH| j¡ |  |¡ |  |¡ |  |¡ |  |¡ d S )N)ÚsuperrN   r   ÚStandardPaperr%   ÚPaperÚ
SetMarginsZHeaderZFooterZFirstHeaderZFirstFooterÚSetBreakTypeÚNONEÚ
SetHeaderYÚ
SetFooterYÚSetLandscapeÚSetFirstPageNumber)r   ZpaperZmarginsZ
break_typeZheaderyZfooteryZ	landscapeZfirst_page_number)Ú	__class__r   r   r   ž   s    



zSection.__init__c             C   s   | j j| jj| jj  S )N)rQ   ÚWidthÚMarginsÚLeftÚRight)r   r   r   r   ÚTwipsToRightMargin¯   s    zSection.TwipsToRightMarginc             C   s4   |pt ddddd| _| jj| jj| jj  | _d S )Niè  i°  )ÚtopÚleftZbottomÚright)ZMarginsPropertySetr[   rQ   rZ   r\   r]   )r   Úvaluer   r   r   rR   ²   s    zSection.SetMarginsc             C   s   || j kst‚|| _| S )N)ÚBREAK_TYPESÚAssertionErrorZ	BreakType)r   rb   r   r   r   rS   ¶   s    zSection.SetBreakTypec             C   s
   || _ | S )N)ZHeaderY)r   rb   r   r   r   rU   »   s    zSection.SetHeaderYc             C   s
   || _ | S )N)ZFooterY)r   rb   r   r   r   rV   ¿   s    zSection.SetFooterYc             C   s   d| _ |rd| _ | S )NFT)Z	Landscape)r   rb   r   r   r   rW   Ã   s     zSection.SetLandscapec             C   s
   || _ | S )N)ZFirstPageNumber)r   rb   r   r   r   rX   È   s    zSection.SetFirstPageNumber)NNNNNNN)r   r   r   rT   ZCOLUMNZPAGEZEVENZODDrc   r   r^   rR   rS   rU   rV   rW   rX   Ú__classcell__r   r   )rY   r   rN   –   s   rN   c           
   C   sº  t ƒ } tt| jjdƒƒ}td| ¡ tdddƒ}| j 	|¡ td| ¡ ƒ}| j 	|¡ |j 
d¡ td| ¡ tdddƒ}| j 	|¡ |j 
d	¡ d
¡ td| ¡ tdddƒ}| j 	|¡ | jj ¡ }| d¡ |j tjd ¡ |j tj¡ | j 	|¡ | jj ¡ }| d¡ |j tjd ¡ |j tjd ¡ | j 	|¡ xpdtjfdtjd fdtjd fgD ]H\}}tj}td| tt| jjdƒƒtdd| |dƒ}| j 	|¡ qjW | S )Nr3   ÚNormalé<   )Úspace_beforeÚspace_afterzNormal Shortr=   z	Heading 1éð   r5   Tz	Heading 2zNormal NumberedéÿÿÿÿzNormal Numbered 2r   r   r   zList %s)rh   ri   Zfirst_line_indentZleft_indent)rG   Ú	TextStyleÚTextPropertySetrK   r   ÚParagraphStyleÚCopyZParagraphPropertySetrM   ÚappendÚSetSizeÚSetBoldrf   ZSetNameZSetFirstLineIndentZTabPropertySetZDEFAULT_WIDTHZSetLeftIndentZTabPS)ÚresultZ
NormalTextZpsZnormal_numberedZnormal_numbered2ÚidxÚindentr   r   r   ÚMakeDefaultStyleSheetÌ   sX    







rv   c               @   s   e Zd ZdS )ÚTABN)r   r   r   r   r   r   r   rw     s    rw   c               @   s   e Zd ZdS )ÚLINEN)r   r   r   r   r   r   r   rx   	  s    rx   c               @   s   e Zd Zdd„ ZdS )ÚRawCodec             C   s
   || _ d S )N)ÚData)r   Údatar   r   r   r     s    zRawCode.__init__N)r   r   r   r   r   r   r   r   ry     s   ry   z{\field{\fldinst page}}z{\field{\fldinst numpages}}z{\field{\fldinst sectionpages}}z	{\f2\'95}c                s¨  t dƒ d¡}t dƒ d¡}t dƒ d¡}t dƒ d¡}t dƒ d¡}t dƒ d¡}t dƒ d¡}t d	ƒ d¡}t d
ƒ d¡}	t dƒ d¡}
t dƒ d¡}t dƒ d¡}t dƒ d¡}t dƒ d¡}t dƒ d¡}t dƒ d¡‰ |||||||||	|
|||g}‡fdd„}‡ ‡fdd„}ˆ d¡ˆ kr8ˆ d¡|ks@tdƒ‚xZ|ƒ }|ƒ }|dk r`tdƒ‚||krˆˆ d¡ |ƒ }|ƒ }||fS ˆ |d ¡ qBW tdƒ‚dS )zM
	converted from: http://dev.w3.org/cvsweb/Amaya/libjpeg/rdjpgcom.c?rev=1.2
	r   zlatin-1éÁ   éÂ   éÃ   éÅ   éÆ   éÇ   éÉ   éÊ   éË   éÍ   éÎ   éÏ   éØ   éÙ   r   c                 s(   ˆ   d¡} ˆ   d¡}t| ƒd> t|ƒ S )Nr   r$   )ÚreadÚord)Zb1Zb2)Úfinr   r   Ú
get_length0  s    

z'_get_jpg_dimensions.<locals>.get_lengthc                 s<   xˆ  d¡ˆ krqW xˆ  d¡} | ˆ kr| S qW tdƒ‚d S )Nr   zInvalid JPEG)rŠ   r   )rs   )ÚM_FFrŒ   r   r   Únext_marker5  s    
z(_get_jpg_dimensions.<locals>.next_markerr   zInvalid Jpegr   zErroneous JPEG marker lengthz#Invalid JPEG, end of stream reachedN)r   ÚencoderŠ   r   )rŒ   ZM_SOF0ZM_SOF1ZM_SOF2ZM_SOF3ZM_SOF5ZM_SOF6ZM_SOF7ZM_SOF9ZM_SOF10ZM_SOF11ZM_SOF13ZM_SOF14ZM_SOF15ZM_SOIZM_EOIZMARKERSr   r   ZmarkerÚlengthZimage_heightZimage_widthr   )rŽ   rŒ   r   Ú_get_jpg_dimensions  sH     
 

r’   s   ‰PNc             C   s   | dd… t krtdƒ‚| d | d | d | d g}x*t|ƒD ]\}}t|tƒr>t|ƒ||< q>W |d d |d	  }|d
 d |d  }||fS )Nr   r   zInvalid PNG imager/   r0   r3   r4   é   r   r   )Ú_PNG_HEADERr   Ú	enumerateÚ
isinstanceÚstrr‹   )r{   Znew_dataÚiÚdÚwidthÚheightr   r   r   Ú_get_png_dimensionsa  s    
rœ   c               @   s.   e Zd ZdZdZeedœZdd„ Zdd„ ZdS )	ÚImageZpngblipZjpegblip)ZpngZjpgc          	   K   s  t |dƒ}| j|dd …  ¡  }|| jkr>t| d¡ƒ\}}nt|ƒ\}}|d|d  d|d  g}x,dD ]$\}}	}
| d|	| ||
¡f ¡ qjW | 	d	d	¡ g }t
| ¡ ƒ d
¡}x.td	t|ƒdƒD ]}| |||d … ¡ qÆW dd |¡d |¡f }t | |¡ d S )NÚrbéýÿÿÿéd   z
picwgoal%sr1   z
pichgoal%s))Zscale_xZscalexÚ100)Zscale_yZscaleyr¡   )Z	crop_leftZcroplÚ0)Z
crop_rightZcroprr¢   )Zcrop_topZcroptr¢   )Zcrop_bottomZcropbr¢   zpic%s%sr   zlatin-1r   z{\pict{\%s}%s}ú\Ú
)ÚopenÚ
PICT_TYPESÚlowerÚPNG_LIBrœ   rŠ   r’   rp   ÚpopÚseekr   Údecoder   ÚlenÚjoinry   r   )r   Ú	file_nameÚkwargsrŒ   Z	pict_typerš   r›   ZcodesZkwargÚcodeÚdefaultr{   Zimager˜   r   r   r   r   |  s"    


zImage.__init__c             C   s   d|| j f S )Nz%s = RawCode( """%s""" ))rz   )r   Zvar_namer   r   r   Ú	ToRawCode  s    zImage.ToRawCodeN)r   r   r   r¨   ZJPG_LIBr¦   r   r²   r   r   r   r   r   o  s   !r   c               @   s   e Zd Zdd„ Zdd„ ZdS )ÚTextc             G   sf   d | _ d | _d | _d | _xH|D ]@}t|tƒr4|| _qt|tƒrF|| _qt|tƒrX|| _q|| _ qW d S )N)rz   ÚStyleÚ
PropertiesÚShadingr–   rl   ÚTextPSÚ	ShadingPS)r   Úparamsr   r   r   r   r   ¡  s    

 
 
 zText.__init__c             C   s
   || _ d S )N)rz   )r   rb   r   r   r   ÚSetData¯  s    zText.SetDataN)r   r   r   r   rº   r   r   r   r   r³      s   r³   c                   s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )ÚInlinec                s€   t t| ƒ ¡  d | _d | _d | _t t| ƒj| _xL|D ]D}t|t	ƒrJ|| _q4t|t
ƒr\|| _q4t|tƒrn|| _q4|  |¡ q4W d S )N)rO   r»   r   r´   rµ   r¶   rp   Ú_appendr–   rl   r·   r¸   )r   r¹   r   )rY   r   r   r   ³  s    

 
 
 zInline.__init__c                s   ‡ fdd„|D ƒ d S )Nc                s   g | ]}|d k	rˆ   |¡‘qS )N)r¼   )Ú.0r   )r   r   r   ú
<listcomp>Ç  s    z!Inline.append.<locals>.<listcomp>r   )r   r¹   r   )r   r   rp   Å  s    zInline.append)r   r   r   r   rp   re   r   r   )rY   r   r»   ²  s   r»   c                   s0   e Zd Z‡ fdd„Zdd„ Z‡ fdd„Z‡  ZS )Ú	Paragraphc                s˜   t t| ƒ ¡  d | _d | _d | _d | _t t| ƒj| _x^|D ]V}t	|t
ƒrP|| _q:t	|tƒrb|| _q:t	|tƒrt|| _q:t	|tƒr†|| _q:|  |¡ q:W d S )N)rO   r¿   r   r´   rµ   ÚFramer¶   rp   r¼   r–   rn   ZParagraphPSÚFramePSr¸   )r   r¹   r   )rY   r   r   r   Ê  s     

 
 
 
 zParagraph.__init__c                s   ‡ fdd„|D ƒ d S )Nc                s   g | ]}|d k	rˆ   |¡‘qS )N)r¼   )r½   r   )r   r   r   r¾   à  s    z$Paragraph.append.<locals>.<listcomp>r   )r   r¹   r   )r   r   rp   Þ  s    zParagraph.appendc                s   |d k	rt t| ƒ ||¡ d S )N)rO   r¿   Úinsert)r   Úindexrb   )rY   r   r   rÂ   â  s    zParagraph.insert)r   r   r   r   rp   rÂ   re   r   r   )rY   r   r¿   É  s   r¿   c               @   sf   e Zd ZdZdZdZeeegZdZdZeegZ	dd„ Z
dd„ Zdd	„ Zd
d„ Zdd„ Zdd„ ZeZdS )ÚTabler   r   r   c             O   s\   g | _ |  | d| j¡¡ |  | dd ¡¡ |  | dd ¡¡ | j|Ž  |rXtd| ƒ‚d S )NÚ	alignmentZleft_offsetZgap_between_cellszinvalid keyword args %s)ÚRowsÚSetAlignmentr©   ÚLEFTÚSetLeftOffsetÚSetGapBetweenCellsÚSetColumnWidthsrd   )r   Úcolumn_widthsr¯   r   r   r   r   ô  s    
zTable.__init__c             C   s&   |d ks|| j kst‚|p| j| _| S )N)Ú	ALIGNMENTrd   rÈ   Ú	Alignment)r   rb   r   r   r   rÇ   ÿ  s    zTable.SetAlignmentc             C   s
   || _ | S )N)Z
LeftOffset)r   rb   r   r   r   rÉ     s    zTable.SetLeftOffsetc             C   s
   || _ | S )N)ZGapBetweenCells)r   rb   r   r   r   rÊ     s    zTable.SetGapBetweenCellsc             G   s   || _ t|ƒ| _| S )N)ZColumnWidthsr¬   ÚColumnCount)r   rÌ   r   r   r   rË     s    
zTable.SetColumnWidthsc             G   sd   d }t |d tttfƒr0t|d ƒ}|dd … }| jtdd„ |D ƒƒkrPtdƒ‚| j 	||f¡ d S )Nr   r   c             S   s   g | ]
}|j ‘qS r   )ÚSpan)r½   Zcellr   r   r   r¾     s    z Table.AddRow.<locals>.<listcomp>z2ColumnCount != the total of this row's cell.Spans.)
r–   r   r   r   ÚintrÏ   Úsumr   rÆ   rp   )r   Zcellsr›   r   r   r   ÚAddRow  s    zTable.AddRowN)r   r   r   rÈ   ZRIGHTZCENTERrÍ   ZNO_WRAPPINGZWRAP_AROUNDZWRAPPINGr   rÇ   rÉ   rÊ   rË   rÓ   rp   r   r   r   r   rÄ   æ  s   
rÄ   c                   s€   e Zd ZdZdZdZdZdZdZdZ	dZ
dZ‡ fdd„Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z‡  ZS )ÚCella  
	\clvertalt	Text is top-aligned in cell (the default).
	\clvertalc	Text is centered vertically in cell.
	\clvertalb	Text is bottom-aligned in cell.
	\cltxlrtb	Vertical text aligned left (direction bottom up).
	\cltxtbrl 	Vertical text aligned right (direction top down).
	r   r   r   r    r!   c                sö   t t| ƒ ¡  |  d ¡ |  d ¡ |  | d| j¡¡ |  | d| j	¡¡ |  
| dd¡¡ |  | dd¡¡ |  | dd¡¡ t t| ƒj| _xb|D ]Z}t|tƒr®|  |¡ q”t|tƒrÄ|  |¡ q”t|tƒrÚ|  |¡ q”t|tƒr”|  |¡ q”W d S )NrÅ   ZflowÚspanr   Zstart_vertical_mergeFZvertical_merge)rO   rÔ   r   ÚSetFramerR   rÇ   ÚgetÚ	ALIGN_TOPÚSetFlowÚ
FLOW_LR_TBÚSetSpanÚSetStartVerticalMergeÚSetVerticalMergerp   r¼   r–   Z
StringTyper¿   rÁ   Z	MarginsPS)r   r¹   r¯   r   )rY   r   r   r   4  s$    



 
 
 
 zCell.__init__c             C   s
   || _ | S )N)rÀ   )r   rb   r   r   r   rÖ   I  s    zCell.SetFramec             C   s
   || _ | S )N)r[   )r   rb   r   r   r   rR   M  s    zCell.SetMarginsc             C   s"   || j | j| jgkst‚|| _d S )N)rØ   ÚALIGN_CENTERÚALIGN_BOTTOMrd   rÎ   )r   rb   r   r   r   rÇ   Q  s    zCell.SetAlignmentc             C   s*   || j | j| j| j| jgks t‚|| _d S )N)rÚ   Ú
FLOW_RL_TBÚ
FLOW_LR_BTÚFLOW_VERTICAL_LR_TBÚFLOW_VERTICAL_TB_RLrd   ZFlow)r   rb   r   r   r   rÙ   U  s     zCell.SetFlowc             C   s   t t|dƒƒ| _| S )Nr   )rÑ   ÚmaxrÐ   )r   rb   r   r   r   rÛ   Y  s    zCell.SetSpanc             C   s   d| _ |rd| _ | S )NFT)ZStartVerticalMerge)r   rb   r   r   r   rÜ   ^  s    zCell.SetStartVerticalMergec             C   s   d| _ |rd| _ | S )NFT)ZVerticalMerge)r   rb   r   r   r   rÝ   d  s    zCell.SetVerticalMergec                s   ‡ fdd„|D ƒ d S )Nc                s   g | ]}ˆ   |¡‘qS r   )r¼   )r½   r   )r   r   r   r¾   k  s    zCell.append.<locals>.<listcomp>r   )r   r¹   r   )r   r   rp   j  s    zCell.append)r   r   r   Ú__doc__rØ   rÞ   rß   rÚ   rà   rá   râ   rã   r   rÖ   rR   rÇ   rÙ   rÛ   rÜ   rÝ   rp   re   r   r   )rY   r   rÔ      s$   rÔ   c               @   s.   e Zd Zd
dd„Zdd„ Zdd„ Zdd	„ ZdS )ÚDocumentNc             C   sH   |pt ƒ | _ttƒ| _|  d ¡ |p(tj| _|p4t	j| _	|| _
|| _d S )N)rv   rG   rL   rN   ÚSectionsÚSetTitleZ	LanguagesZDEFAULTÚDefaultLanguageÚViewKindÚViewZoomKindÚ	ViewScale)r   Ústyle_sheetÚdefault_languageÚ	view_kindÚview_zoom_kindÚ
view_scaler   r   r   r   n  s    

zDocument.__init__c             O   s   t ||Ž}| j |¡ |S )N)rN   rç   rp   )r   r¹   r¯   rs   r   r   r   Ú
NewSectiony  s    
zDocument.NewSectionc             C   s
   || _ | S )N)ÚTitle)r   rb   r   r   r   rè   ~  s    zDocument.SetTitlec             C   s<   t | j ¡ | j| j| j| jd}| | j¡ | j	 ¡ |_	|S )N)rí   rî   rï   rð   rñ   )
ræ   rG   ro   ré   rê   rë   rì   rè   ró   rç   )r   rs   r   r   r   ro   ‚  s    

zDocument.Copy)NNNNN)r   r   r   r   rò   rè   ro   r   r   r   r   ræ   m  s   
ræ   c              O   s¢   t ƒ }| | dd ¡¡ | | dd ¡¡ | | dd¡¡ | | dd¡¡ | | dd¡¡ | | dd ¡¡ t| ƒdkrŒt	| d	 |ƒS t
|ƒ}|j| Ž  |S )
NZfontÚsizeÚboldFÚitalicÚ	underlineZcolourr   r   )rm   ZSetFontr×   rq   rr   Z	SetItalicZSetUnderlineZ	SetColourr¬   r³   r»   rp   )r¹   r¯   Ú
text_propsrs   r   r   r   ÚTEXT  s    
rù   c              G   s:   t dd}t| ƒdkr$t| d |ƒS t|ƒ}|j| Ž  |S )NT)rõ   r   r   )rm   r¬   r³   r»   rp   )r¹   rø   rs   r   r   r   ÚB  s    

rú   c              G   s:   t dd}t| ƒdkr$t| d |ƒS t|ƒ}|j| Ž  |S )NT)rö   r   r   )rm   r¬   r³   r»   rp   )r¹   rø   rs   r   r   r   ÚI§  s    

rû   c              G   s:   t dd}t| ƒdkr$t| d |ƒS t|ƒ}|j| Ž  |S )NT)r÷   r   r   )rm   r¬   r³   r»   rp   )r¹   rø   rs   r   r   r   ÚU±  s    

rü   N)=Z
__future__r   Úbuiltinsr   r   r   Útypesr   r   r   r	   ÚImportErrorrÑ   Úfloatr—   Úcopyr
   Zbinasciir   Z	ConstantsZStylesr   r   rI   rH   rp   ZColourrK   rJ   ZFontr   ZSetAlternater   ZPapersrP   rQ   rG   ÚlistrN   rv   rw   rx   ry   ZPAGE_NUMBERZTOTAL_PAGESZSECTION_PAGESZARIAL_BULLETr’   r”   rœ   r   r³   r»   r¿   rÄ   rÔ   ræ   rù   rú   rû   rü   r   r   r   r   Ú<module>   s  
	6<



L1:M 

