ó
B€BTc           @   s•   d  Z  d Z d Z d Z d d l m Z d d l m Z m Z m	 Z	 m
 Z
 e Z d „  Z d d	 „ Z d
 e
 f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   s   HTML Renderer for FPDF.pys%   Mariano Reingart <reingart@gmail.com>s#   Copyright (C) 2010 Mariano Reingarts   LGPL 3.0i   (   t   FPDF(   t   PY3Kt
   basestringt   unicodet
   HTMLParserc         C   s   t  |  ƒ d d S(   Ngffffff9@g      R@(   t   int(   t   px(    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt   px2mm   s    s   #000000c         C   sY   |  rU t  |  d d !d ƒ } t  |  d d !d ƒ } t  |  d d !d ƒ } | | | f Sd  S(   Ni   i   i   i   i   (   R   (   t   colort   rt   gt   b(    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt   hex2dec   s
    t	   HTML2FPDFc           B   s¤   e  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d d d
 „ Z d d d „ Z d d d d „ Z d „  Z d „  Z RS(   s   Render basic HTML to FPDFc         C   sP  t  j |  ƒ i  |  _ t |  _ d |  _ d |  _ i  |  _ d  |  _	 g  |  _
 | |  _ | pa d „  |  _ d |  _ |  _ |  _ d |  _ g  |  _ |  j d d ƒ d |  _ d |  _ d  |  _ d  |  _ d  |  _ d  |  _ t |  _ d  |  _ d  |  _ d  |  _ d  |  _ d  |  _ t |  _ |  _  t! d d d d	 d
 d d d d d d d ƒ |  _" d  S(   Nt    c         S   s   |  S(   N(    (   t   src(    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt   <lambda>'   s    i    t   timesi   t   h1i   t   h2g      ø?t   h3g¸…ëQ¸ò?t   h4i   t   h5gÂõ(\ê?t   h6gq=
×£på?(#   R   t   __init__t   stylet   Falset   pret   hreft   alignt
   page_linkst   Nonet   fontt
   font_stackt   pdft	   image_mapR	   R
   R   t   indentt   bullett   set_fontt	   font_faceR   t   tablet   table_col_widtht   table_col_indext   tdt   tht   trt   theadert   tfootert   theadt   tfoott   theader_outt   tfooter_outt   dictt   hsize(   t   selfR"   R#   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyR      s8    																						c         C   s‘   | d d k r |  j  j |  j  j |  j  j } |  j d d d k ri | t |  j d d  ƒ d 9} n  t | d  ƒ | d St | ƒ d Sd  S(   Niÿÿÿÿt   %t   widthg      Y@g     @Y@g      @(   R"   t   wt   r_margint   l_marginR(   R   (   R6   t   lengtht   total(    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt   width2mm;   s     "c         C   s  |  j  d  k	 rPd |  j  k rg d |  j  k rg y |  j |  j g } WqÁ t k
 rc t d ƒ ‚ qÁ XnZ d |  j  k r© |  j } t |  j  d ƒ } |  j | | | !} n |  j  j d d ƒ g } t g  | D] } |  j	 | ƒ ^ qË ƒ } t |  j  j d d ƒ ƒ d p|  j
 d } | |  _ t |  j j d	 d ƒ ƒ } |  j sp|  j  j d
 d ƒ d j ƒ  }	 | ojd } n; |  j d t ƒ | p‰d } |  j  j d
 d ƒ d j ƒ  }	 t |  j  j d |  j j d d ƒ ƒ ƒ }
 |  j d  k	 r|  j j | | | | d |	 f |
 f ƒ n  |  j d  k	 rI|  j j | | | | d |	 f |
 f ƒ n  | |  j rj|  j d d d pmd } |  j j | |  j j k rÁ|  j rÁ|  j ƒ  |  j j ƒ  t |  _ |  _ n  |  j d  k r|  j d  k r|  j sõ|  j  ƒ  n  |  j! | | |
 ƒ t" r+d |  j j# | | d f GHn  |  j j$ | | | | d |	 ƒ qnÈ |  j d  k	 rbn¶ |  j% rºt" r‚d | d f GHn  |  j j$ d |  j
 | d d |  j% d j ƒ  |  j& ƒ n^ | j' d d ƒ } |  j& rë|  j( |  j& | ƒ n- t" rd | d f GHn  |  j j) |  j
 | ƒ d  S(   NR8   t   colspans9   Table column/cell width not specified, unable to continuet   240t   heighti    i   gÍÌÌÌÌÌô?t   borderR   t   Lt   LRt   Bt   Ct   bgcolorR   i   s   td cellt   *t   cells   
t    t   write(*   R+   R   R)   R*   t
   IndexErrort   RuntimeErrorR   t   gett   sumR>   t   ht   table_hR(   R,   t   uppert	   set_stylet   TrueR   R-   R0   R.   t   appendR1   R/   R"   t   yt   page_break_triggert   output_table_footert   add_pageR   R2   R3   t   output_table_headert
   box_shadowt   DEBUGt   xRI   R   R   t   replacet   put_linkRK   (   R6   t   txtt   lt   iR?   t   lenghtR9   RP   RB   R   RG   RA   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt   handle_dataD   sd    	(,		*++(&
	 %	 8	 c         C   sw   t  r d | | | f GHn  | rs |  j j } |  j j | Œ  |  j j |  j j |  j j | | d ƒ | |  j _ n  d  S(   NR[   t   F(   R\   R"   t
   fill_colort   set_fill_colort   rectR]   RV   (   R6   R9   RP   RG   Rf   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyR[   |   s     (c         C   sØ   |  j  rË |  j } |  j j } |  j j |  j ƒ |  j d t ƒ xB |  j  D]7 \ } } |  j | d | d | ƒ |  j j	 | Œ  qK W|  j d | ƒ |  j j
 |  j  d d d ƒ |  j j |  j ƒ n  t |  _ d  S(   NRE   i    i   (   R.   R   R"   R]   t   set_xt   table_offsetRS   RT   R[   RI   t   lnR2   (   R6   R   R]   RI   RG   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyRZ   „   s    		c         C   sÔ   |  j  rŸ |  j j } |  j j |  j ƒ xB |  j  D]7 \ } } |  j | d | d | ƒ |  j j | Œ  q2 W|  j j |  j  d d d ƒ |  j j | ƒ n  t |  j	 j
 d d ƒ ƒ rÇ |  j ƒ  n  t |  _ d  S(   Ni    i   RB   (   R/   R"   R]   Ri   Rj   R[   RI   Rk   R   R(   RN   t   output_table_sepRT   R3   (   R6   R]   RI   RG   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyRX   “   s    	c         C   sw   |  j  j |  j ƒ |  j  j } |  j  j } t g  |  j D] } |  j | ƒ ^ q8 ƒ } |  j  j | | | | | ƒ d  S(   N(	   R"   Ri   Rj   R]   RV   RO   R)   R>   t   line(   R6   t   x1t   y1Rc   R9   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyRl   ¡   s
    +c         C   sø  t  | ƒ } t r# d | | f GHn  | d k sG | d k sG | d k rZ |  j | d ƒ n  | d k rv | d |  _ n  | d k r• |  j j d	 ƒ n  | d
 k rØ |  j j d	 ƒ | rØ | rÕ | j d ƒ |  _ qÕ qØ n  | |  j k rP|  j | } |  j j d	 | ƒ |  j j	 d d d ƒ |  j j
 d | ƒ | rP| j d ƒ |  _ qPn  | d k ri|  j ƒ  n  | d k rÇ|  j j d d d ƒ |  j j
 d ƒ |  j d t ƒ |  j d t ƒ t |  _ n  | d k rù|  j	 d d d ƒ |  j j d ƒ n  | d k r'|  j d 7_ |  j j d ƒ n  | d k rU|  j d 7_ |  j j d ƒ n  | d k r|  j j |  j d ƒ |  j j	 d d d ƒ |  j |  j d } t | t ƒ sÜ| d 7} | |  j |  j d <d  | } n  |  j j |  j d! d: |  j | f ƒ |  j	 ƒ  n  | d# k r|  j j |  j |  j |  j f ƒ d$ | k rvt | d$ ƒ |  _ |  j	 t Œ  t |  _ n  d% | k rË| j d% ƒ j ƒ  } y |  j j | ƒ | |  _ WqËt k
 rÇqËXn  d& | k rt | j d& ƒ ƒ } |  j j |  j d& t | ƒ ƒ| |  _ qn  | d' k rEt  g  | j ƒ  D] \ } } | j ƒ  | f ^ q6ƒ |  _  d( |  j  k rd) |  j  d( <n  |  j  d( d* d+ k rï|  j j! |  j j" |  j j# } | t |  j  d( d*  ƒ d, 9} |  j j! | d- |  _$ n  g  |  _% t |  _& |  _' g  |  _( g  |  _) d  |  _+ d  |  _, d |  _- |  j j ƒ  n  | d. k rªt  g  | j ƒ  D] \ } } | j ƒ  | f ^ qaƒ |  _. d |  _/ |  j j0 |  j$ ƒ n  | d/ k rót  g  | j ƒ  D] \ } } | j ƒ  | f ^ qÆƒ |  _1 n  | d0 k rnt  g  | j ƒ  D] \ } } | j ƒ  | f ^ qƒ |  _1 t |  _2 d( |  j1 k rn|  j% j |  j1 d( ƒ qnn  | d1 k r†i  |  _+ n  | d2 k rži  |  _, n  | d3 k r¥d4 | k r¥|  j j3 ƒ  }	 |  j j4 ƒ  }
 t5 | j d( d ƒ ƒ } t5 | j d5 d ƒ ƒ } |  j rE|  j d j6 ƒ  d6 k rE|  j j! |	 d- | d- }	 n  |  j j7 |  j8 | d4 ƒ |	 |
 | | d7 |  j ƒ|  j j0 |	 | ƒ |  j j9 |
 | ƒ q¥n  | d k sÉ| d k sÉ| d k rÜ|  j | t ƒ n  | d8 k rôd9 |  _ n  d  S(;   Nt   STARTTAGR   Rb   t   ui   t   aR   t   bri   t   pR   i–   i    i   t   hrR   t   CourierR   i   RE   t   It
   blockquoteid   i-   i   t   uls   •t   olt   lii   i¾   s   %s. s   %s%s RJ   R    R   t   facet   sizeR(   R8   s   100%iÿÿÿÿR7   g      Y@g       @R-   R+   R,   R0   R1   t   imgR   RA   RF   t   linkt   centert   Centers        (:   R4   R\   RS   R   R"   Rk   RN   R   R5   t   set_text_colort   set_font_sizet   put_lineR&   R   RT   R   R$   R%   RU   RP   t
   isinstanceR   RK   R!   R'   t	   font_sizeR   R   t   lowerRM   R   t   itemsR(   R9   R:   R;   Rj   R)   R2   R3   R.   R/   R   R0   R1   RQ   R-   R*   Ri   R+   R,   t   get_xt   get_yR   RR   t   imageR#   t   set_y(   R6   t   tagt   attrst   kR%   R|   R}   t   vR9   R]   RV   RP   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt   handle_starttag©   sà     $  
'": 						:	=:	"$c         C   s  t  r d | f GHn  | d k sD | d k sD | d k sD | d k rt |  j j d ƒ |  j ƒ  |  j ƒ  d  |  _ n  | d k r» |  j j |  j p• d d	 d
 ƒ |  j j d
 ƒ t	 |  _
 n  | d k rí |  j d d d ƒ |  j j d ƒ n  | d k rd } n  | d k rd } n  | d k s;| d k s;| d k rN|  j | t	 ƒ n  | d k rfd	 |  _ n  | d k r~d	 |  _ n  | d% k r©|  j d 8_ |  j j ƒ  n  | d k rÿ|  j sË|  j ƒ  n  d  |  _ t	 |  _ d  |  _ d  |  _ |  j j ƒ  n  | d k rd  |  _ n  | d k r/d  |  _ n  | d k r[|  j j |  j ƒ |  j ƒ  n  | d k rž|  j } |  j d  k r’|  j j | ƒ n  d  |  _ n  | d k s¶| d k r|  j ràt  rÍd GHn  |  j d  t	 ƒ n  |  j t |  j j  d! d" ƒ ƒ 7_ d  |  _ t	 |  _ n  | d# k r|  j! j ƒ  \ } } } | re|  j j d d d ƒ d  |  _" n  |  j | | ƒ d  |  _ n  | d$ k r™d  |  _ n  d  S(&   Nt   ENDTAGR   R   R   R   i   R   t   TimesR   i   Rx   i    i   t   strongR   t   emRb   Rq   Rr   Rt   Ry   Rz   i   R(   R0   R1   t   tbodyR-   R+   R,   s   revert styleRE   R?   t   1R    R€   (   s   uls   ol(#   R\   R"   Rk   R&   RS   R   R   R    Rƒ   R   R   R‚   R   R$   R%   t   popR3   RX   R(   R,   R.   R/   R0   R1   Ri   Rj   Rl   RQ   R-   R*   R   R+   RN   R!   R   (   R6   R   RP   R|   R}   R   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt   handle_endtag  s€     0

		$							 $	c         C   sÂ   | r | |  _  n  | rL | |  _ | d d |  _ t rL d |  j f GHqL n  |  j j |  j  pa d d d ƒ |  j j |  j p€ d ƒ |  j d t ƒ |  j d t ƒ |  j d	 t ƒ |  j	 ƒ  d  S(
   Ng      R@gffffff9@t   HR   R   i   Rq   R   Rb   (
   R'   R†   RP   R\   R"   R&   Rƒ   RS   R   R‚   (   R6   R|   R}   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyR&   \  s    	 c         C   s•   | r4 |  j  j | j ƒ  ƒ } | |  j  | j ƒ  <n  d } x- d D]% } |  j  j | ƒ rA | | 7} qA qA Wt r~ d | f GHn  |  j j d | ƒ d  S(   NR   R   Rb   Rq   t   SET_FONT_STYLE(   R   Rb   Rq   (   R   RN   R‡   R\   R"   R&   (   R6   R   t   enablet   tR   t   s(    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyRS   j  s     i    c         C   sc   | d  k r. |  j j |  j |  j |  j ƒ n1 |  j j | | | ƒ | |  _ | |  _ | |  _ d  S(   N(   R   R"   R‚   R	   R
   R   (   R6   R	   R
   R   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyR‚   v  s    "		c         C   sZ   |  j  d d d ƒ |  j d t ƒ |  j j d | | ƒ |  j d t ƒ |  j  d ƒ d  S(   Ni    iÿ   Rq   i   (   R‚   RS   RT   R"   RK   R   (   R6   t   urlR`   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyR_     s
    c         C   se   |  j  j d ƒ |  j  j |  j  j ƒ  |  j  j ƒ  |  j  j ƒ  d |  j  j ƒ  ƒ |  j  j d ƒ d  S(   Ni   i»   i   (   R"   Rk   Rm   R‰   RŠ   (   R6   (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyR„   ‡  s    AN(   t   __name__t
   __module__t   __doc__R   R   R>   Rd   R[   RZ   RX   Rl   R‘   R™   R&   RS   R‚   R_   R„   (    (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyR      s   			8					p	C		t	   HTMLMixinc           B   s   e  Z d d  „ Z RS(   c         C   s/   t  |  | ƒ } | j | ƒ } | j | ƒ d S(   s    Parse HTML and convert it to PDFN(   R   t   unescapet   feed(   R6   t   textR#   t   h2p(    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt
   write_html  s    N(   R    R¡   R   R¨   (    (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyR£   Œ  s   N(   R¢   t
   __author__t   __copyright__t   __license__t   fpdfR    t   py3kR   R   R   R   R   R\   R   R   R   t   objectR£   (    (    (    s/   /var/www/ficnx/bin/fpdf/fpdf-1.7.2/fpdf/html.pyt   <module>   s   "	ÿ s