ó
ÊLºVc           @€  s˜   d  Z  d d l m Z d Z d Z d Z d d l Z d d l Z d d l Z d d l	 m
 Z
 d d	 l m Z m Z m Z d
 „  Z d d d „  ƒ  YZ d S(   s   PDF Template Helper for FPDF.pyiÿÿÿÿ(   t   with_statements%   Mariano Reingart <reingart@gmail.com>s#   Copyright (C) 2010 Mariano Reingarts   LGPL 3.0Ni   (   t   FPDF(   t   PY3Kt
   basestringt   unicodec         C€  s   |  d |  d d |  d f S(   Ni   i   (    (   t   col(    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   rgb   s    t   Templatec           B€  sX  e  Z d d d  d d d d d d d „	 Z d „  Z d d d „ Z d „  Z d	 „  Z e Z d
 „  Z	 d „  Z
 d „  Z d d „ Z d d d d d d d e e e d d d d d „ Z d d d d d d d „ Z d d d d d d d d „ Z d d d d d d „ Z d d d d d d d d d „ Z d d d d d d d e e e d d d d „ Z RS(   t   A4t   portraitt    c
         C€  sË   | r |  j  | ƒ n  i |  j d 6|  j d 6|  j d 6|  j d 6|  j d 6|  j d 6|  _ i  |  _ t	 d | d | d	 d
 ƒ }
 |  _
 |
 j | ƒ |
 j | ƒ |
 j | ƒ |
 j | ƒ |
 j |	 ƒ d  S(   Nt   Tt   Lt   It   Bt   BCt   Wt   formatt   orientationt   unitt   mm(   t   load_elementst   textt   linet   imaget   rectt   barcodet   writet   handlerst   textsR   t   pdft	   set_titlet
   set_authort   set_creatort   set_subjectt   set_keywords(   t   selft   infilet   elementsR   R   t   titlet   authort   subjectt   creatort   keywordsR   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   __init__   s    !$	"c         C€  s?   d |  _  | |  _ g  |  j D] } | d j ƒ  ^ q |  _ d S(   s*   Initialize the internal element structuresi    t   nameN(   t   pg_noR&   t   lowert   keys(   R$   R&   t   v(    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyR   !   s    		t   ,t   .c   
      C€  s5  d } g  |  _  d |  _ t s0 t | d ƒ } n t | ƒ } | Ä x¼ t j | d | ƒD]¥ } i  } x† t | ƒ D]x \ } }	 |	 j d ƒ r¯ | d k r¯ |	 j | d ƒ }	 n |	 }	 |	 d k rÊ d }	 n t
 |	 j ƒ  ƒ }	 |	 | | | <qr W|  j  j | ƒ qY WWd QXg  |  j  D] }	 |	 d j ƒ  ^ q|  _ d S(   s7   Parse template format csv file and create elements dictR-   t   typet   x1t   y1t   x2t   y2t   fontt   sizet   boldt   italict	   underlinet
   foregroundt
   backgroundt   alignR   t   priorityt	   multilinei    t   rbt	   delimitert   'R3   R
   N(   s   names   types   x1s   y1s   x2s   y2s   fonts   sizes   bolds   italics	   underlines
   foregroundR?   s   aligns   textRA   s	   multiline(   R&   R.   R   t   opent   csvt   readert	   enumeratet
   startswitht   replacet   Nonet   evalt   stript   appendR/   R0   (
   R$   R%   RD   t   decimal_sepR0   t   ft   rowt   kargst   iR1   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt	   parse_csv'   s*      			c         C€  s#   |  j  d 7_  i  |  j |  j  <d  S(   Ni   (   R.   R   (   R$   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   add_pageB   s    c         C€  s‚   | j  ƒ  |  j k r~ t r@ t | t ƒ r@ | j d d ƒ } n! | d  k rU d } n t | ƒ } | |  j |  j	 | j  ƒ  <n  d  S(   Nt   latin1t   ignoreR
   (
   R/   R0   R   t
   isinstanceR   t   encodeRL   t   strR   R.   (   R$   R-   t   value(    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   __setitem__F   s    	c         C€  s   | j  ƒ  |  j k S(   N(   R/   R0   (   R$   R-   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   has_keyS   s    c         C€  s‡   | |  j  k rƒ | j ƒ  } | |  j k r< |  j |  j | Sg  |  j D]" } | d j ƒ  | k rF | ^ qF } | rƒ | d d Sn  d  S(   NR-   i    R   (   R0   R/   R   R.   R&   (   R$   R-   t   keyt   elementR&   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   __getitem__V   s    "c         C€  s_  |  j  } g  |  j D]( } | d j ƒ  | j ƒ  k r | ^ q d } d } | d rb | d 7} n  | d ry | d 7} n  | d r | d	 7} n  | j | d
 | | d ƒ i d d 6d d 6d d 6d d 6d d 6d d 6j | d ƒ } t | t ƒ rt r| j d d ƒ } n t	 | ƒ } | j
 d | d | d d | d | d d | d | d t ƒ S(   s/   Divide (
) a string using a given element widthR-   i    R
   R;   R   R<   R   R=   t   UR9   R:   R   t   Rt   Dt   CR@   RW   RX   t   wR7   R5   t   hR8   R6   t   txtt
   split_only(   R   R&   R/   t   set_fontt   getRY   R   R   RZ   R[   t
   multi_cellt   True(   R$   R   t   element_nameR   R`   t   styleR@   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   split_multicellc   s$    	,
 
 
 =t   Fc         C€  s6  |  j  } xt d |  j d ƒ D]ø } | j ƒ  | j d d d ƒ | j t d d ƒx¿ t |  j d d „  ƒD]¥ } | j	 ƒ  } |  j
 | j | d	 j ƒ  | d
 ƒ | d
 <d | k rÚ | j | d | d | d ƒ n  |  j | d j ƒ  | |  d | k ro | j d ƒ qo qo Wq  W| r2| j | | ƒ Sd  S(   Ni   t   ArialR   i   t   margini    R_   c         S€  s   |  d S(   NRA   (    (   t   x(    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   <lambda>}   s    R-   R   t   rotateR5   R6   R4   (   R   t   rangeR.   RV   Rj   t   set_auto_page_breakt   Falset   sortedR&   t   copyR   Rk   R/   Rv   R   t   uppert   output(   R$   t   outfilet   destR   t   pgR`   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   renderv   s    	
+"i    t   ariali
   iÿÿ  c         O€  si  | re| j  t | ƒ k r1 | j t | ƒ Œ  n  | j t | ƒ k r\ | j t | ƒ Œ  n  | j ƒ  j ƒ  } | d k rƒ d } n  d } xN d D]F } | j d | ƒ r | j d | ƒ r | d	 d
 !} | | 7} q q W|	 rí | d 7} n  |
 r | d 7} n  | r| d 7} n  i d d 6d d 6d d 6d d 6d d 6d d 6j	 | ƒ } | j
 | | | ƒ | j | | ƒ | d  k r´| j d | | d | | d | d d d d d | ƒ qe| rí| j d | | d | | d | d d d | ƒ qe| j d | | d | | d | d | d t ƒ d } d | GH| j d | | d | | d | d d d d d | ƒ n  d  S(   Ns   arial blackR‚   R
   R   R   Rb   s   <%s>s   </%s>i   iüÿÿÿR   Rc   Rd   Re   Rf   Rg   Rh   t   borderi    t   lnR@   Ri   s   trimming: *%s*(   R   R   Rb   (   t
   text_colorR   t   set_text_colort
   fill_colort   set_fill_colorRN   R/   RJ   t   endswithRk   Rj   t   set_xyRL   t   cellRl   Rm   (   R$   R   R5   R6   R7   R8   R   R9   R:   R;   R<   R=   R@   R>   t	   backgroudRB   t   argst   kwargsRo   t   tag(    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyR   Š   s<    	&   993	c   
      O€  sR   | j  t | ƒ k r+ | j t | ƒ Œ  n  | j | ƒ | j | | | | ƒ d  S(   N(   t
   draw_colorR   t   set_draw_colort   set_line_widthR   (
   R$   R   R5   R6   R7   R8   R:   R>   R   RŽ   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyR   ³   s    c	         O€  s…   | j  t | ƒ k r+ | j t | ƒ Œ  n  | j t | ƒ k rV | j t | ƒ Œ  n  | j | ƒ | j | | | | | | ƒ d  S(   N(   R   R   R‘   R‡   Rˆ   R’   R   (   R$   R   R5   R6   R7   R8   R:   R>   RŒ   R   RŽ   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyR   »   s    c   	      O€  s@   | r< | j  | | | d | | d | | d d d d ƒn  d  S(   NRf   Rg   R4   R
   t   link(   R   (	   R$   R   R5   R6   R7   R8   R   R   RŽ   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyR   Ã   s    i   c
      	   O€  ss   | j  t |	 ƒ k r+ | j t |	 ƒ Œ  n  | j ƒ  j ƒ  } | d k ro | j | | | d | d | | ƒn  d  S(   Ns   interleaved 2of5 ntRf   Rg   (   R   R   R‘   R/   RN   t   interleaved2of5(   R$   R   R5   R6   R7   R8   R   R9   R:   R>   R   RŽ   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyR   Ç   s
    s   http://example.comc         O€  sU  | j  t | ƒ k r+ | j t | ƒ Œ  n  | j ƒ  j ƒ  } | d k rR d } n  d } xN d D]F } | j d | ƒ r_ | j d | ƒ r_ | d	 d
 !} | | 7} q_ q_ W|	 r¼ | d 7} n  |
 rÏ | d 7} n  | râ | d 7} n  i d d 6d d 6d d 6d d 6d d 6d d 6j | ƒ } | j | | | ƒ | j	 | | ƒ | j
 d | | ƒ d  S(   Ns   arial blackR‚   R
   R   R   Rb   s   <%s>s   </%s>i   iüÿÿÿR   Rc   Rd   Re   i   (   R   R   Rb   (   R…   R   R†   RN   R/   RJ   R‰   Rk   Rj   RŠ   R   (   R$   R   R5   R6   R7   R8   R   R9   R:   R;   R<   R=   R@   R“   R>   R   RŽ   Ro   R   (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyR   Ð   s(    	&   9N(   t   __name__t
   __module__RL   R,   R   RU   RV   R]   t   setR^   Ra   Rp   R   Ry   R   R   R   R   R   R   (    (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyR      s,   						'(    (   t   __doc__t
   __future__R    t
   __author__t   __copyright__t   __license__t   syst   osRG   t   fpdfR   t   py3kR   R   R   R   R   (    (    (    s*   /var/www/ficnx/bin/pyfpdf/fpdf/template.pyt   <module>   s   $	