
LVc           @  s  d  d l  m Z m Z d  d l m Z d  d l m Z d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l Z d  d l Z d d l 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 m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" d
 Z# e j$ j% e j$ j& e'  d  Z( d a) d a+ d a, i d d 6d d 6d d 6d  d 6d! d 6Z- d   Z. d   Z/ d e0 f d     YZ1 d S("   i(   t   divisiont   with_statement(   t   datetime(   t   wrapsNi   (   t
   TTFontFile(   t   fpdf_charwidths(   t   substrt   sprintft   print_rt   UTF8ToUTF16BEt   UTF8StringToArray(
   t   PY3Kt   picklet   urlopent   BytesIOt   Imaget
   basestringt   unicodet	   exceptiont   bt   hashpaths   1.7.2t   fonti    gQO@g33333@t   a3g
ףp=@t   a4gףp=
Oz@t   a5id  i  t   letteri  t   legalc         C  s   | t    |  <d  S(   N(   t   globals(   t   vart   val(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt
   set_global,   s    c         C  sR   |  s
 d Sy) t |  d   } t j |  SWd QXWn t t f k
 rM d SXd S(   s5   Return unpickled object, or None if cache unavailablet   rbN(   t   Nonet   openR   t   loadt   IOErrort
   ValueError(   t   filenamet   fh(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt
   load_cache/   s    t   FPDFc        	   B  s  e  Z d  Z d d d d  Z e d    Z d   Z d d  Z d	   Z d
   Z	 d   Z
 d d  Z d d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d d  Z d   Z d   Z d   Z d d e d  Z d   Z d   Z d    Z d d d!  Z d d d"  Z d d d#  Z e d$  Z  d%   Z! e d&    Z" e e d'  Z# e d( d( d)   Z$ e d d*   Z% e d d+   Z& d d e d,  Z' d d d-  Z( d.   Z) d/   Z* d0   Z+ d d d1  Z, d2   Z- e d d3   Z. e de de d4   Z0 d5   Z1 e d d d d d d d d6   Z2 e d d d7 d e d8   Z3 e d d d9   Z4 e de de d d d d d:   Z5 e d d;   Z6 d<   Z7 d=   Z8 d>   Z9 d?   Z: d@   Z; d d dA  Z< dB   Z= dC   Z> dD   Z? dE   Z@ dF   ZA dG   ZB dH   ZC dI   ZD dJ   ZE dK   ZF dL   ZG dM   ZH dN   ZI dO   ZJ dP   ZK dQ   ZL dR   ZM dS   ZN dT   ZO dU   ZP dV   ZQ dW   ZR dX   ZS dY   ZT dZ   ZU d[   ZV d\   ZW d]   ZX d^   ZY e d_ d` da   ZZ e db dc dd   Z[ RS(f   s   PDF Generation classt   Pt   mmt   A4c         C  s\  |  j    i  |  _ d |  _ d |  _ d |  _ i  |  _ d |  _ i  |  _ i  |  _ i  |  _	 i  |  _
 i  |  _ i  |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ i d d	 6d
 d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d  d! 6d" d# 6|  _ d$ |  _ | d% k rd& |  _ nY | d' k rd; |  _ nA | d* k rd< |  _ n) | d, k rd- |  _ n |  j d. |  |  j | |  j  \ |  _  |  _! |  j  |  _" |  j! |  _# |  j  |  j |  _$ |  j! |  j |  _% | j&   } | d= k rtd1 |  _' |  j  |  _( |  j! |  _) nA | d> k rd4 |  _' |  j! |  _( |  j  |  _) n |  j d5 |  |  j' |  _* |  j( |  j |  _+ |  j) |  j |  _, d6 |  j } |  j- | |  | d7 |  _. d8 |  j |  _/ |  j0 d& d |  |  j1 d9  |  j2 d&  d: |  _3 d  S(?   Ni    i   t    i   id   s   0 Gs   0 gt   Couriert   couriers   Courier-Boldt   courierBs   Courier-Obliquet   courierIs   Courier-BoldObliquet	   courierBIt	   Helveticat	   helveticas   Helvetica-Boldt
   helveticaBs   Helvetica-Obliquet
   helveticaIs   Helvetica-BoldObliquet   helveticaBIs   Times-Romant   timess
   Times-Boldt   timesBs   Times-Italict   timesIs   Times-BoldItalict   timesBIt   Symbolt   symbolt   ZapfDingbatst   zapfdingbatss   latin-1t   pti   R*   iH   gffffff9@t   cmgRQ@t   ing      R@s   Incorrect unit: t   pt   portraitR)   t   lt	   landscapet   Ls   Incorrect orientation: gY<@g      $@g/$?t	   fullwidths   1.3gjZ@gbX<@(   RB   RC   (   RD   RE   (4   t	   _docheckst   offsetst   paget   nt   buffert   pagest   statet   fontst
   font_filest   diffst   imagest
   page_linkst   linkst	   in_footert   lastwt   lastht   font_familyt
   font_stylet   font_size_ptt   font_stretchingt	   underlinet
   draw_colort
   fill_colort
   text_colort
   color_flagt   wst   anglet
   core_fontst   core_fonts_encodingt   kt   errort   get_page_formatt   fw_ptt   fh_ptt   dw_ptt   dh_ptt   fwR&   t   lowert   def_orientationt   w_ptt   h_ptt   cur_orientationt   wt   ht   set_marginst   c_margint
   line_widtht   set_auto_page_breakt   set_display_modet   set_compressiont   pdf_version(   t   selft   orientationt   unitt   formatt   margin(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   __init__<   s    
																											!		c         C  s`   t  |  t  rB |  j   }  |  t k r/ t |  St d |    n |  d | |  d | f Sd S(   s0   Return scale factor, page w and h size in pointss   Unknown page format: i    i   N(   t
   isinstanceR   Rm   t   PAGE_FORMATSt   RuntimeError(   R~   Re   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRg      s    c           s   t       f d    } | S(   s$   Decorator to protect drawing methodsc           s>   |  j  r* | j d  r* |  j d  n   |  | |  Sd  S(   Nt
   split_onlys/   No page open, you need to call add_page() first(   RJ   t   getRf   (   R{   t   argst   kwargs(   t   fn(    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   wrapper   s    (   R   (   R   R   (    (   R   s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt
   check_page   s    ic         C  s4   | |  _  | |  _ | d k r' | } n  | |  _ d S(   s   Set left, top and right marginsiN(   t   l_margint   t_margint   r_margin(   R{   t   leftt   topt   right(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRt      s
    			c         C  s7   | |  _  |  j d k r3 |  j | k  r3 | |  _ n  d S(   s   Set left margini    N(   R   RJ   t   x(   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_left_margin   s    	c         C  s   | |  _  d S(   s   Set top marginN(   R   (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_top_margin   s    c         C  s   | |  _  d S(   s   Set right marginN(   R   (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_right_margin   s    i    c         C  s&   | |  _  | |  _ |  j | |  _ d S(   s.   Set auto page break mode and triggering marginN(   t   auto_page_breakt   b_marginRs   t   page_break_trigger(   R{   t   autoR   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRw      s    		t
   continuousc         C  s   | d k s@ | d k s@ | d k s@ | d k s@ t  | t  rL | |  _ n |  j d |  | d k s | d k s | d k s | d k r | |  _ n |  j d	 |  d
 S(   s   Set display mode in viewer
        
        The "zoom" argument may be 'fullpage', 'fullwidth', 'real',
        'default', or a number, interpreted as a percentage.t   fullpageRG   t   realt   defaults   Incorrect zoom display mode: t   singleR   t   twos   Incorrect layout display mode: N(   R   R   t	   zoom_modeRf   t   layout_mode(   R{   t   zoomt   layout(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRx      s    @0c         C  s   | |  _  d S(   s   Set page compressionN(   t   compress(   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRy      s    c         C  s   | |  _  d S(   s   Title of documentN(   t   title(   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt	   set_title   s    c         C  s   | |  _  d S(   s   Subject of documentN(   t   subject(   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_subject   s    c         C  s   | |  _  d S(   s   Author of documentN(   t   author(   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt
   set_author   s    c         C  s   | |  _  d S(   s   Keywords of documentN(   t   keywords(   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_keywords   s    c         C  s   | |  _  d S(   s   Creator of documentN(   t   creator(   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_creator   s    c         C  s3   | d k r | |  _  n |  j d t |   d S(   s   Set document optionRd   s   Unknown document option "%s"N(   Rd   Rf   t   str(   R{   t   optt   value(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_doc_option   s    s   {nb}c         C  s   | |  _  | S(   s)   Define an alias for total number of pages(   t   str_alias_nb_pages(   R{   t   alias(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   alias_nb_pages   s    	c         C  s   t  d |   d S(   s   Fatal errors   FPDF error: N(   R   (   R{   t   msg(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRf      s    c         C  s   d |  _  d S(   s   Begin documenti   N(   RN   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR!      s    c         C  sc   |  j  d k r d S|  j d k r/ |  j   n  d |  _ |  j   d |  _ |  j   |  j   d S(   s   Terminate documenti   Ni    i   (   RN   RJ   t   add_pageRU   t   footert   _endpaget   _enddoc(   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   close  s    	
	
R,   c         C  s\  |  j  d k r |  j   n  |  j } |  j r> |  j d } n	 |  j } |  j } |  j } |  j } |  j }	 |  j	 }
 |  j
 } |  j } |  j d k r d |  _ |  j   d |  _ |  j   n  |  j | | |  |  j d  | |  _ |  j t d | |  j   | r |  j | | |  n  | |  _ | d k rE|  j |  n  |	 |  _ |	 d k rj|  j |	  n  |
 |  _	 | |  _
 |  j   |  j | k r| |  _ |  j t d | |  j   n  | r|  j | | |  n  |  j | k r| |  _ |  j |  n  |  j |	 k r*|	 |  _ |  j |	  n  |
 |  _	 | |  _
 | d k rX|  j |  n  d	 S(
   s>   Start a new page, if same page format will be same as previousi    t   Ui   s   2 Js   %.2f ws   0 Gs   0 gid   N(   RN   R!   RX   R\   RY   RZ   Rv   R]   R^   R_   R`   R[   RJ   RU   R   R   t
   _beginpaget   _outR   Re   t   set_fontt   headert   set_stretching(   R{   R|   R~   t   samet   familyt   stylet   sizet   lwt   dct   fct   tct   cft
   stretching(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR     s`    											
						
	 				c         C  s   d S(   s4   Header to be implemented in your own inherited classN(    (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR   P  s    c         C  s   d S(   s4   Footer to be implemented in your own inherited classN(    (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR   T  s    c         C  s   |  j  S(   s   Get current page number(   RJ   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   page_noX  s    c         C  s   | d k r$ | d k r$ | d k s0 | d k rI t  d | d  |  _ n$ t  d | d | d | d  |  _ |  j d k r |  j |  j  n  d S(   s%   Set color for all stroking operationsi    is   %.3f Gg     o@s   %.3f %.3f %.3f RGN(   R   R]   RJ   R   (   R{   t   rt   gR   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_draw_color\  s
    0$c         C  s   | d k r$ | d k r$ | d k s0 | d k rI t  d | d  |  _ n$ t  d | d | d | d  |  _ |  j |  j k |  _ |  j d k r |  j |  j  n  d S(   s$   Set color for all filling operationsi    is   %.3f gg     o@s   %.3f %.3f %.3f rgN(   R   R^   R_   R`   RJ   R   (   R{   R   R   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_fill_colore  s    0$c         C  s   | d k r$ | d k r$ | d k s0 | d k rI t  d | d  |  _ n$ t  d | d | d | d  |  _ |  j |  j k |  _ d S(   s   Set color for texti    is   %.3f gg     o@s   %.3f %.3f %.3f rgN(   R   R_   R^   R`   (   R{   R   R   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_text_coloro  s    0$c         C  s  | r | n |  j  |  } |  j d } d } t |  } |  j r x | D]h } t |  } t |  | k r | | | 7} qJ |  j d d r | |  j d d 7} qJ | d 7} qJ Wn4 x1 t d |  D]  } | | j | | d  7} q W|  j d k r| |  j d } n  | |  j d S(	   s)   Get width of a string in the current fontt   cwi    t   desct   MissingWidthi  id   g      Y@g     @@(	   t   normalize_textt   current_fontt   lent   unifontsubsett   ordt   rangeR   R[   t	   font_size(   R{   t   st
   normalizedR   Rr   RD   t   chart   i(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   get_string_widthw  s"    	c         C  s<   | |  _  |  j d k r8 |  j t d | |  j   n  d S(   s   Set line widthi    s   %.2f wN(   Rv   RJ   R   R   Re   (   R{   t   width(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_line_width  s    	c         C  sM   |  j  t d | |  j |  j | |  j | |  j |  j | |  j   d S(   s   Draw a lines   %.2f %.2f m %.2f %.2f l SN(   R   R   Re   Rs   (   R{   t   x1t   y1t   x2t   y2(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   line  s    c         C  sF   | r/ | r/ t  d | |  j | |  j  } n d } |  j |  d  S(   Ns   [%.3f %.3f] 0 ds   [] 0 d(   R   Re   R   (   R{   t   dash_lengtht   space_lengthR   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt	   _set_dash  s    #i   c         C  s4   |  j  | |  |  j | | | |  |  j    d S(   s   Draw a dashed line. Same interface as line() except:
           - dash_length: Length of the dash
           - space_length: Length of the space between dashesN(   R   R   (   R{   R   R   R   R   R   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   dashed_line  s    c         C  s   | d k r d } n' | d k s- | d k r6 d } n d } |  j  t d | |  j |  j | |  j | |  j | |  j |   d S(	   s   Draw a rectanglet   Ft   ft   FDt   DFt   Bt   Ss   %.2f %.2f %.2f %.2f re %sN(   R   R   Re   Rs   (   R{   R   t   yRr   Rs   R   t   op(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   rect  s    		c         C  s  | d k r d } n' | d k s- | d k r6 d } n d } | | d } | | d } | d }	 | d }
 d t  j d
  d |	 } d t  j d
  d |
 } |  j t d | |	 |  j |  j | |  j | |	 |  j |  j | | |  j | | |  j |  j | |
 |  j | |  j |  j | |
 |  j 	  |  j t d | | |  j |  j | |
 |  j | |	 |  j |  j | | |  j | |	 |  j |  j | |  j   |  j t d | |	 |  j |  j | | |  j | | |  j |  j | |
 |  j | |  j |  j | |
 |  j   |  j t d | | |  j |  j | |
 |  j | |	 |  j |  j | | |  j | |	 |  j |  j | |  j |   d S(   s   Draw a ellipseR   R   R   R   R   R   g       @g      @g      @i   i   s+   %.2f %.2f m %.2f %.2f %.2f %.2f %.2f %.2f cs   %.2f %.2f %.2f %.2f %.2f %.2f cs"   %.2f %.2f %.2f %.2f %.2f %.2f c %sNgUUUUUU?gUUUUUU?(   t   matht   sqrtR   R   Re   Rs   (   R{   R   R   Rr   Rs   R   R   t   cxt   cyt   rxt   ryt   lxt   ly(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   ellipse  s:    		

##&##&##&##c      	   C  s#  | j    } | d k r; | j d d  | j    d } n  | d k rP d } n  | j   } | d k rq d } n  | | } | |  j k r d S| rt j j |  r | } n t r t j j t j j t |   r t j j t |  } nO t	 r-t j j t j j t	 |   r-t j j t	 |  } n t
 d	 |   d } t d
 k rlt j j |  d
 d } n4 t d k rt j j t t |  d  } n d } t |  }	 |	 d k rt   }
 |
 j |  i t t |
 j d
   d 6t t |
 j d
   d 6t t |
 j d
   d 6|
 j d 6d t t |
 j d
 d
   t t |
 j d d
   t t |
 j d d
   t t |
 j d d
   f d 6t |
 j  d 6t t |
 j d
   d 6t t |
 j d
   d 6} i	 t j d d |
 j  d 6d d 6| d 6t |
 j   d 6t |
 j!  d 6| d 6| d 6t j" |  j# d  6|
 j$ d! 6}	 | ry, t% | d"   } t& j' |	 |  Wd QXWqt( k
 rt)   j* t* j+ k s  qqXn  ~
 n  t, |  d#  rt- t. d
 d$   } n t- t. d
 d%   } i t/ |  j  d d& 6|	 d d 6|	 d d 6|	 d d 6|	 d d 6|	 d d 6|	 d! d! 6|	 d d 6| d 6| d' 6| d( 6|  j | <i |	 d  d) 6d d 6| d 6|  j0 | <i d d 6|  j0 | <ngt% | d*   } t& j1 |  }	 Wd QXi t/ |  j  d d& 6|  j | <|  j | j2 |	  |	 j3 d+  } | rd
 } t/ |  j4  } x8 t. d | d  D]# } |  j4 | | k rR| } PqRqRW| d
 k r| d } | |  j4 | <n  | |  j | d+ <n  |	 j3 d,  } | r|	 d d- k r|	 d  } i | d) 6|  j0 | <qi |	 d. d) 6|	 d/ d0 6|  j0 | <n  d S(1   s   Add a TrueType or Type1 fontR,   t    s   .pklt   arialR3   t   IBt   BINs   TTF Font file not found: %si    i   t   Ascentt   Descentt	   CapHeightt   Flagss   [%s %s %s %s]i   i   t   FontBBoxt   ItalicAnglet   StemVR   s   [ ()]t   namet   TTFt   typeR   t   upt   utt   ttffilet   fontkeyt   originalsizeR   t   wbR   i9   i    R   t   subsett   unifilenamet   length1R   t   diffR%   t   TrueTypet   size1t   size2t   length2(5   Rm   t   replacet   upperRO   t   ost   patht   existst   FPDF_FONT_DIRt   joint   SYSTEM_TTFONTSR   t   FPDF_CACHE_MODEt   splitextt   FPDF_CACHE_DIRR   R    R'   R   t
   getMetricst   intt   roundt   ascentt   descentt	   capHeightt   flagst   bboxt   italicAnglet   stemVt   defaultWidtht   ret   subt   fullNamet   underlinePositiont   underlineThicknesst   statt   st_sizet
   charWidthsR!   R   t   dumpR#   R   t   errnot   EACCESt   hasattrt   listR   R   RP   R"   t   updateR   RQ   (   R{   R   R   t   fnamet   uniR  t   ttffilenameR  R  t	   font_dictt   ttfR   R&   t   sbarrt   fontfileR  t   dt   nbR   R%   R  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   add_font  s    #		
	!!	
!!

c         B  s  | j    } | d k r$ |  j } n  | d k r9 d } n! | d k sQ | d k rZ d } n  | j   } d | k r d |  _ | j d d  } n	 d |  _ | d	 k r d
 } n  | d k r |  j } n  |  j | k r |  j | k r |  j | k r d S| | } | |  j k r9| |  j k r| e	 k re
 j j e |  } | d k sX| d k rk| | j    7} n  e | d  % } e | j   | d d  d UWd QX| e	 k r|  j d |  qn  e |  j  d } i | d 6d d 6|  j | d 6d d 6d d 6e	 | d 6|  j | <q9|  j d | d |  n  | |  _ | |  _ | |  _ | |  j |  _ |  j | |  _ |  j | d d k |  _ |  j d k r|  j e d |  j d |  j   n  d S(   s#   Select a font; size given in pointsR,   R   R3   R<   R>   R   i   i    R   R   NR7   s   .fontt   execs&   Could not include font metric file forR   t   coreR
  R  iR  i2   R  R   s   Undefined font: R   R	  s   BT /F%d %.2f Tf ET(   Rm   RX   R  R\   R  RZ   RY   RO   Rc   R   R  R  R  R  R!   t   compilet   readRf   R   Re   R   R   R   RJ   R   R   (   R{   R   R   R   R  R  t   fileR   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR   M  sP    					-
$E			c         C  se   |  j  | k r d S| |  _  | |  j |  _ |  j d k ra |  j t d |  j d |  j    n  d S(   s   Set font size in pointsNi    s   BT /F%d %.2f Tf ETR   (   RZ   Re   R   RJ   R   R   R   (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_font_size  s    	c         C  sK   |  j  | k r d S| |  _  |  j d k rG |  j t d |  j    n  d S(   s1   Set from stretch factor percents (default: 100.0)Ni    s   BT %.2f Tz ET(   R[   RJ   R   R   (   R{   t   factor(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR     s
    	c         C  s$   t  |  j  d } d |  j | <| S(   s   Create a new internal linki   i    (   i    i    (   R   RT   (   R{   RK   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   add_link  s    c         C  sG   | d k r |  j  } n  | d k r0 |  j } n  | | g |  j | <d S(   s    Set destination of internal linkiN(   R   RJ   RT   (   R{   t   linkR   RJ   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_link  s
    c         C  st   |  j  |  j k r% g  |  j |  j  <n  |  j |  j  c | |  j |  j | |  j | |  j | |  j | f g 7<d S(   s   Put a link on the pageN(   RJ   RS   Re   Rp   (   R{   R   R   Rr   Rs   RO  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRO    s    c         C  s  |  j  |  } |  j r^ |  j t | t   } x: t |  D] } |  j d j |  q= Wn |  j |  } t d | |  j	 |  j
 | |  j	 |  } |  j r | d k r | d |  j | | |  7} n  |  j r d |  j d | d } n  |  j |  d S(   s   Output a stringR  s   BT %.2f %.2f Td (%s) Tj ETR,   R   s   q s    QN(   R   R   t   _escapeR	   t   FalseR
   R   t   appendR   Re   Rs   R\   t   _dounderlineR`   R_   R   (   R{   R   R   t   txtt   txt2R>  R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   text  s    	* 	c      
   C  s   | d  k r |  j } n  | d  k r0 |  j } n  |  j d k rO |  j d  n  | |  _ | d k r | t j d 9} t j |  } t j |  } | |  j	 } |  j
 | |  j	 } t d | | | | | | | | 	 } |  j |  n  d  S(   Ni    t   Qi   s7   q %.5F %.5F %.5F %.5F %.2F %.2F cm 1 0 0 1 %.2F %.2F cm(   R    R   R   Rb   R   R   t   pit   cost   sinRe   Rs   R   (   R{   Rb   R   R   t   cR   R   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   rotate  s    	'c         C  s   |  j  S(   s"   Accept automatic page break or not(   R   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   accept_page_break  s    c	      	   C  s  |  j  |  } |  j }	 |  j | |  j k r |  j r |  j   r |  j }
 |  j } | d k r{ d |  _ |  j d  n  |  j	 d t
  |
 |  _ | d k r | |  _ |  j t d | |	   q n  | d k r |  j |  j |  j } n  d } | d k s| d k ry| d k r7| d k r.d } q=d } n d	 } t d
 |  j |	 |  j |  j |	 | |	 | |	 |  } n  t | t  r|  j }
 |  j } d | k r| t d |
 |	 |  j | |	 |
 |	 |  j | | |	  7} n  d | k r4| t d |
 |	 |  j | |	 |
 | |	 |  j | |	  7} n  d | k r| t d |
 | |	 |  j | |	 |
 | |	 |  j | | |	  7} n  d | k r| t d |
 |	 |  j | | |	 |
 | |	 |  j | | |	  7} qn  | d k r| d k r| |  j |  j | t
  } n2 | d k rB| |  j | t
  d } n	 |  j } |  j rl| d |  j d 7} n  |  j r|  j rx( t |  D] } |  j d j |  qW|  j t d t   } | t d |  j | |	 |  j |  j d | d |  j |	  7} | j d  } t |  } x t |  D] } | | } d |  j t | t   d } | t d |  7} | d | k  r+|  j |  j d |  j  } | t d | |  7} q+q+W| d 7} | d 7} n |  j r|  j t | t   } x: t |  D] } |  j d j |  qWn |  j |  } | t d |  j | |	 |  j |  j d | d |  j |	 |  7} |  j! r| d |  j" |  j | |  j d | d |  j |  7} n  |  j r| d 7} n  | r|  j# |  j | |  j d | d |  j |  j | t
  |  j |  qn  | r4|  j |  n  | |  _$ | d k rv|  j | 7_ | d k r|  j% |  _ qn |  j | 7_ d  S(!   s   Output a celli    s   0 TwR   s   %.3f TwR,   i   R   R   R   s   %.2f %.2f %.2f %.2f re %s RF   s   %.2f %.2f m %.2f %.2f l S t   Tt   Rt   Cg       @s   q R   R  s   BT 0 Tw %.2F %.2F Td [g      ?g333333?t   (t   )s   %s i  s   %d(%s) s   ] TJs    ETs   BT %.2f %.2f Td (%s) Tj ETs    QN(&   R   Re   R   R   RU   R^  R   Ra   R   R   t   TrueR   Rr   R   Rs   R   R   Ru   R   R`   R_   R   R
   R   RS  RQ  R	   RR  R   t   splitR   R   RZ   R\   RT  RO  RW   R   (   R{   Rr   Rs   RU  t   bordert   lnt   alignt   fillRO  Re   R   Ra   R   R   R   t   dxR>  t   spacet   tt   numtR   t   txt   adjRV  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   cell  s    	,					 		<		AAIL 		B
 
	E	=	K	t   Jc         C  sF  |  j  |  } g  } |  j d }	 | d k rH |  j |  j |  j } n  | d |  j d |  j }
 | j d d  } t |  } | d k r | | d d k r | d 8} n  d } | r6| d k r d	 } d
 } d } q6d } d | k r | d 7} n  d | k r| d 7} n  d | k r-| d } q6| } n  d } d } d } d } d } d } x4| | k  r| | } | d k rR|  j	 d k rd |  _	 | s|  j
 d  qn  | s|  j | | t | | | |  | d | |  n | j t | | | |   | d 7} d } | } d } d } | d 7} | r]| d k r]| } q]q]n  | d k rw| } | } | d 7} n  |  j r| |  j | t  |  j d 7} n | |	 j | d  7} | |
 k r| d k rt| | k r| d 7} n  |  j	 d k rd |  _	 | s|  j
 d  qn  | sT|  j | | t | | | |  | d | |  qC| j t | | | |   n | d k r| d k r|
 | d |  j | d |  _	 n	 d |  _	 | s|  j
 t d |  j	 |  j   qn  | s|  j | | t | | | |  | d | |  n | j t | | | |   | d } d } | } d } d } | d 7} | r| d k r| } qq]| d 7} q]W|  j	 d k rd |  _	 | s|  j
 d  qn  | rd | k r| d 7} n  | s%|  j | | t | | | |  | d | |  |  j |  _ n | j t | | | |   | S(   s2   Output text with automatic or explicit line breaksR   i    i   g     @@s   R,   i   s   
t   LTRBt   LRTt   LRRF   R`  R_  is   0 TwR   Rq  s   %.3f TwR   (   R   R   Rr   R   R   Ru   R   R  R   Ra   R   Rp  R   RS  R   R   Rd  R   R   Re   R   (   R{   Rr   Rs   RU  Rf  Rh  Ri  R   t   retR   t   wmaxR   RE  R   t   b2t   sepR   t   jRD   t   nst   nlR\  t   ls(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt
   multi_cell(  s     		
	2

		$	2 #	&2

	/c      	   C  s  |  j  |  } |  j d } |  j |  j |  j } | d |  j d |  j } | j d d  } t |  } d }	 d }
 d } d } d } x|
 | k  rJ| |
 } | d	 k r\|  j	 | | t
 | | |
 |  d d d d |  |
 d 7}
 d }	 |
 } d } | d k rL|  j |  _ |  j |  j |  j } | d |  j d |  j } n  | d 7} q n  | d
 k rq|
 }	 n  |  j r| |  j | t  |  j d 7} n | | j | d  7} | | k r=|	 d k r|  j |  j k rF|  j |  _ |  j | 7_ |  j |  j |  j } | d |  j d |  j } |
 d 7}
 | d 7} q n  |
 | k r_|
 d 7}
 n  |  j	 | | t
 | | |
 |  d d d d |  n< |  j	 | | t
 | | |	 |  d d d d |  |	 d }
 d }	 |
 } d } | d k r0|  j |  _ |  j |  j |  j } | d |  j d |  j } n  | d 7} q |
 d 7}
 q W|
 | k r|  j	 | d |  j | t
 | |  d d d d |  n  d S(   s   Output text in flowing modeR   i   g     @@s   R,   ii    i   s   
R   N(   R   R   Rr   R   R   Ru   R   R  R   Rp  R   R   R   R   Rd  R   R   (   R{   Rs   RU  RO  R   Rr   Rv  R   RE  Rx  R   Ry  RD   R{  R\  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   write  sp    
2

		$

52
c      	   C  sI  | |  j  k r| d k rZ | j d  } | sD |  j d |  n  t | | d  } n  | j   } | d k s~ | d k r |  j |  }	 n | d k r |  j |  }	 n t }
 |  j |  j |  j g } x/ | D]' } y | |  }	 t	 }
 PWq q Xq W|
 sId | } t
 |  |  s1|  j d	 |  n  t |  |  |  }	 n  d | } t
 |  |  sv|  j d	 |  n  t |  |  |  }	 t |  j   d |	 d
 <|	 |  j  | <n |  j  | }	 | d k r| d k r|	 d |  j } |	 d |  j } nJ | d k r!| |	 d |	 d } n% | d k rF| |	 d |	 d } n  | d k r|  j | |  j k r|  j r|  j   r|  j } |  j d t	  | |  _ n  |  j } |  j | 7_ n  | d k r|  j } n  |  j t d | |  j | |  j | |  j |  j | | |  j |	 d
   | rE|  j | | | | |  n  d S(   s   Put an image on the pageR,   t   .s7   image file has no extension and no type was specified: i   t   jpgt   jpegt   pngt   _parses   Unsupported image type: R   i    Rr   Rs   R   s&   q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do QN(   RR   t   rfindRf   R   Rm   t	   _parsejpgt	   _parsepngRR  t	   _parsegifRd  R:  t   getattrR   Re   R    R   R   RU   R^  R   R   R   R   Rs   RO  (   R{   R  R   R   Rr   Rs   R
  RO  t   post   infot   succeed_parsingt   parsing_functionst   pft   mtd(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   image  sf    

,		Mc         C  sC   |  j  |  _ t | t  r0 |  j |  j 7_ n |  j | 7_ d S(   s,   Line Feed; default value is last cell heightN(   R   R   R   R   R   RW   (   R{   Rs   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRg  !  s    c         C  s   |  j  S(   s   Get x position(   R   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   get_x*  s    c         C  s,   | d k r | |  _  n |  j | |  _  d S(   s   Set x positioni    N(   R   Rr   (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_x.  s    c         C  s   |  j  S(   s   Get y position(   R   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   get_y5  s    c         C  s8   |  j  |  _ | d k r$ | |  _ n |  j | |  _ d S(   s   Set y position and reset xi    N(   R   R   R   Rs   (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_y9  s    c         C  s   |  j  |  |  j |  d S(   s   Set x and y positionsN(   R  R  (   R{   R   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   set_xyA  s    c         C  s  |  j  d k  r |  j   n  | j   } | d k rR | d k rI d } qR d } n  t rm |  j j d  } n	 |  j } | d k r t t j d t j  } | j	 |  nU | d k r t
 | d   } | j	 |  Wd	 QXn! | d
 k r | S|  j d |  d	 S(   s   Output PDF to some destination
        
        By default the PDF is written to sys.stdout. If a name is given, the
        PDF is written to a new file. If dest='S' is given, the PDF data is
        returned as a byte string.i   R,   t   IR   t   latin1t   DRL   R  NR   s   Incorrect output destination: (   R  R  (   RN   R   R  R   RL   t   encodeR  t   syst   stdoutR~  R!   Rf   (   R{   R  t   destRL   R  R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   outputF  s&    			c         C  s   t  sW |  j r+ t | t  r+ | j d  S|  j r t | t  r | j |  j  Sn, |  j r |  j r | j |  j  j d  S| S(   s7   Check that text input is in the correct format/encodings   utf-8s   latin-1(   R   R   R   R   t   decodeR   R  Rd   (   R{   RU  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR   i  s    c         C  s;   t  d d  d k r7 d d  l } | j | j d  n  d  S(   Ns   %.1fg      ?s   1.0iRa  (   R   t   localet	   setlocalet
   LC_NUMERIC(   R{   R  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRH   w  s    c         C  s   t  d S(   Nt   /(   R  (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   _getfontpath  s    c      
   C  s  |  j  } t |  d  r t |  j t  } t t |  t  } xC t d | d  D]. } |  j | d j | |  |  j | d <qS WxO t d | d  D]7 } |  j | d j |  j t |   |  j | d <q Wn  |  j	 d k r |  j
 } |  j } n |  j } |  j
 } |  j rd } n d } xt d | d  D]} |  j   |  j d  |  j d  |  j | d	 } |  j | d
 }	 | | k s|	 | k r|  j t d | |	   n  |  j d  |  j r| |  j k rd }
 x |  j | D] } t d | d | d | d | d | d | d  } |
 d | d 7}
 t | d t  rw|
 d |  j | d  d 7}
 q|  j | d } | d |  j k r| } n |	 } |
 t d d d | d | | d |  j  7}
 qW|  j |
 d  n  |  j d k r|  j d  n  |  j d t |  j d  d  |  j d  |  j | d } |  j rt rp| j d  n | } t j |  } n | } |  j   |  j d | d  t t |   d!  |  j |  |  j d  q9Wt |  j  |  j d <|  j d"  |  j d#  d$ } x3 t d |  D]" } | t d d |  d% 7} q%W|  j | d  |  j d& t |   |  j t d | |   |  j d!  |  j d  d  S('   NR   i   t   contentR)   s   /Filter /FlateDecode R,   s   <</Type /Pages   /Parent 1 0 RRo   Rp   s   /MediaBox [0 0 %.2f %.2f]s   /Resources 2 0 Rs	   /Annots [s   %.2f %.2f %.2f %.2fi    i   i   s%   <</Type /Annot /Subtype /Link /Rect [s   ] /Border [0 0 0] i   s   /A <</S /URI /URI s   >>>>s!   /Dest [%d 0 R /XYZ 0 %.2f null]>>t   ]s   1.3sL   /Group <</Type /Group /S /Transparency"                    "/CS /DeviceRGB>>s
   /Contents s    0 R>>t   endobjR  s   <<s   /Length s   >>s   1 0 objs   <</Type /Pagess   /Kids [s    0 R s   /Count (    RJ   R:  R	   R   RR  R   R   RM   R  Rn   Rj   Rk   R   t   _newobjR   R   RS   R   R   t   _textstringRT   t   orientation_changesRe   Rz   RK   R   R  t   zlibR   t
   _putstreamRL   RI   (   R{   RE  R   R   RK   Rj   Rk   t   filterRo   Rp   t   annotst   plR   RD   Rs   R  RB   t   kidsR   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt	   _putpages  s    	,!					
$		,
"	
) c       	   C  s
  |  j  } xD |  j D]9 } |  j   |  j d |  j | d  |  j d  q Wx|  j j   D]\ } } d | k r` | d d k r` |  j   |  j  |  j | d <t |  j   | d d   } | j   } Wd  QXt	 | d	  d
 k } | r~d | k r~t
 | d  d k } | r-t	 | d  } n  | r~t
 | | d  d k r~t	 | d | d  t	 | | d d  } q~n  |  j d t t |    | r|  j d  n  |  j d t | d   d | k r|  j d t | d  d  n  |  j d  |  j |  |  j d  q` q` Wg  |  j j   D]% }	 |	 d d |	 d |	 d f ^ q8}
 |
 j   x8|
 D]0\ } } } |  j  d |  j | d <| d } | d } | d k r5|  j   |  j d  |  j d |  |  j d  | d k r| d k r|  j d  n  |  j d  |  j d  qt| d k sM| d  k rs|  j   |  j d  |  j d |  |  j d! |  |  j d"  |  j d# t |  j  d  d$  |  j d% t |  j  d&  d$  | d' r#d( | k r|  j d) t | | d(  d$  q#|  j d  n  |  j d  |  j d  |  j   | d* } d+ } x@ t d, d-  D]/ } | t | j t |   pd  d. 7} qgW|  j | d/  |  j d  |  j   d0 | } x* d[ D]" } | d9 | | d: | f 7} qW| d; } | rR| d< 7} | d k r,| d= 7} n  | d. t |  j | d  d$ 7} n  |  j | d  |  j d  qt| d k rd
|  j  d |  j | d <t   } d\ | d } | d@ } | d =| j | dA |  } t |  } t j |  } | j } |  j   |  j d  |  j dB  |  j d | dC  |  j dD  |  j dE t |  j  d  dF  |  j dG t |  j  d&  d$  |  j d  |  j d  |  j   |  j d  |  j dH  |  j d | dC  |  j dI t |  j  d&  d$  |  j d% t |  j  dJ  d$  | d: j d8  rI|  j dK | d: d8  n  |  j | | j  |  j dL t |  j  dM  d$  |  j d  |  j d  |  j   dN } |  j d t t |   d  |  j |  |  j d  |  j   |  j dO  |  j dP  |  j dQ  |  j d  |  j d  |  j   |  j dR  |  j dS |  xV d] D]N } | d: | } | d4 k r| dM B} | d^ @} n  |  j d9 | | f  q]W|  j dT t |  j  d&  d$  |  j d  |  j d  dC } dU g d- d- d& } xN | j   D]@ \ } } t | dV ? | | d& <t | dW @ | | d& d <q	WdC j |  } t r~	| j dX  } n  t j |  } |  j   |  j d t t |   dC  |  j d  |  j d  |  j |  |  j d  |  j   |  j d t t |    |  j d  |  j d t |   |  j d  |  j |  |  j d  ~ qtdY | j   } t |  |  s
|  j dZ |  n  |  j  |  qtWd  S(_   Ns?   <</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [s   ]>>R  R
  R	  RK   R   i   is   .zR  i    i   i   R  s
   <</Length s   /Filter /FlateDecodes	   /Length1 s	   /Length2 s    /Length3 0s   >>R   R  RH  s   <</Type /Fonts   /BaseFont /s   /Subtype /Type1R;   R=   s   /Encoding /WinAnsiEncodingt   Type1R  s
   /Subtype /s   /FirstChar 32 /LastChar 255s   /Widths s    0 Rs   /FontDescriptor i   t   encR  s
   /Encoding R   t   [i    i   R   R  s#   <</Type /FontDescriptor /FontName /R  R  R  R  R  R  R  R   s    /%s %sR   RK  s
    /FontFilet   2t   MPDFAAt   +R  R  s   /Subtype /Type0R,   s   /Encoding /Identity-Hs   /DescendantFonts [s    0 R]s   /ToUnicode s   /Subtype /CIDFontType2s   /CIDSystemInfo i   s   /DW %ds   /CIDToGIDMap i   sY  /CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<</Registry (Adobe)
/Ordering (UCS)
/Supplement 0
>> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
1 beginbfrange
<0000> <FFFF> <0000>
endbfrange
endcmap
CMapName currentdict /CMap defineresource pop
end
ends   <</Registry (Adobe)s   /Ordering (UCS)s   /Supplement 0s   <</Type /FontDescriptors   /FontName /s   /FontFile2 t    i   i   R  t   _puts   Unsupported font type: (   s   Ascents   Descents	   CapHeights   Flagss   FontBBoxs   ItalicAngles   StemVs   MissingWidths   MPDFAA+(   s   Ascents   Descents	   CapHeights   Flagss   FontBBoxs   ItalicAngles   StemVs   MissingWidthi(!   RK   RQ   R  R   RP   t   itemsR!   R  RJ  R   R   R   R   R  RO   t   sortR   R   t   chrR   t
   makeSubsetR  R   t   codeToGlypht   _putTTfontwidthst   maxUniR  R   R  Rm   t   method_existsRf   R  (    R{   t   nfR  R  R  R   R   t
   compressedR   R   t   flistt   idxRe   R
  R   R   R   R%   RA  t   fontnameR  t   ttfontstreamt
   ttfontsizet
   fontstreamR  t   toUnit   kdt   vt   cidtogidmapt   cct   glyphR  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt	   _putfonts  s8   	

 1";




""
&

-

 

&	
	
""
"""
!


" 
!
c      
   C  s  | d r+ t  j j | d  d d } n d  } t |  } | d  k rv d } i  } i  } d } d }	 t }
 d } nB | d } | d } | d	 } | d
 }	 | d }
 | d } d } | d } t | d  } x6t | |  D]%} | d k r| rt  j j |  ryn t	 | d  Y } i  } | | d <| | d	 <|	 | d
 <|
 | d <| | d <| | d <t
 j | |  Wd  QXWqt k
 rt   j t j k s  qqXn  | d k r| | k rq n  | d | } | d k rq n  | d k r d } n  d | k s&| d r | | d k r | | d k r| |	 k r| | | d k rr| j | g   j |  n$ | | j   | } |	 | g | | <t }
 t | | <q|
 r| } | g | | <n | | j |  t }
 n | } | g | | <t }
 | } | }	 q q Wd } d } t } x t | j    D] \ } } t |  } | | k r| r| | k ss| d k  r| | k r| | =n  | | | | | | <| | =n | } | | } | | k r| d k } | | =| d 8} q0t } q0Wg  } x t | j    D] \ } } t t |   d k r[| j d | | t |  d | d f  q| j d | d j g  | D] } t t |   ^ qt f  qW|  j d d j |   d  S(   NR  i    s
   .cw127.pkliii   t   rangeidR   t   prevcidt	   prevwidtht   intervalt   range_intervali   R  R  i   R   i  t   dwi   s	    %s %s %ss    %s [ %s ]
R   s   /W [%s]R,   (   R  R  R"  R    R'   RR  t   setR   R  R!   R   R7  R#   R   R8  R9  t
   setdefaultRS  t   popRd  t   sortedR  R   R  R   R%  R   (   R{   R   R  t
   cw127fnameR@  R  t   range_R  R  R  R  t   startcidt   cwlenR  t   cidR&   R   t   prevkt   nextkt   previntRe   Ra   t   cwsRr   Rs   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR    s    
!	






%





 	&	+



/Cc         C  s   d } |  j  r d } n  g  |  j j   D] } | d d | d f ^ q( } | j   x> | D]6 \ } } |  j |  | d =d | k r] | d =q] q] Wd  S(   NR,   s   /Filter /FlateDecode i   R   t   datat   smask(   R   RR   R  R  t	   _putimage(   R{   R  R   R   R  R  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt
   _putimages  s    		4
c         C  s  d | k r|  j    |  j | d <|  j d  |  j d  |  j d t | d   |  j d t | d   | d	 d
 k r |  j d t t | d  d d  d t |  j d  d  n5 |  j d | d	  | d	 d k r |  j d  n  |  j d t | d   d | k r<|  j d | d  n  d | k rd|  j d | d d  n  d | k rt | d t  rd } xS t d t | d   D]8 } | t | d |  d t | d |  d 7} qW|  j d | d  n  d  | k r(|  j d! t |  j d  d"  n  |  j d# t t | d   d  |  j | d  |  j d$  d  | k rd% t | d  } i | d d 6| d d 6d& d	 6d' d 6| d d 6| d 6| d  d 6} |  j	 |  n  | d	 d
 k r|  j    |  j
 rd( pd } |  j
 r0t j
 | d  } n
 | d } |  j d) | d# t t |   d  |  j |  |  j d$  qn  d  S(*   NR  RK   s   <</Type /XObjects   /Subtype /Images   /Width Rr   s   /Height Rs   t   cst   Indexeds!   /ColorSpace [/Indexed /DeviceRGB t   pali   i   R   s    0 R]s   /ColorSpace /t
   DeviceCMYKs   /Decode [1 0 1 0 1 0 1 0]s   /BitsPerComponent t   bpcR   s	   /Filter /t   dps   /DecodeParms <<s   >>t   trnsR,   i    s   /Mask [R  R  s   /SMask s    0 Rs   /Length R  s5   /Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns t
   DeviceGrayi   s   /Filter /FlateDecode s   <<(   R  RK   R   R   R   R   R;  R   R  R  R   R  (   R{   R  R  R   R  R  R  R  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR    sP    
E 6%%G
	
)c         C  s~   g  |  j  j   D] } | d | d f ^ q } | j   x= | D]5 \ } } |  j d t |  d t |  d  qA Wd  S(   NR   RK   s   /IR   s    0 R(   RR   t   valuesR  R   R   (   R{   R   R   R  RK   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   _putxobjectdictE  s    0
c         C  s   |  j  d  |  j  d  g  |  j j   D] } | d | d f ^ q* } | j   x= | D]5 \ } } |  j  d t |  d t |  d  q[ W|  j  d  |  j  d	  |  j   |  j  d  d  S(
   Ns-   /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]s   /Font <<R   RK   s   /FR   s    0 Rs   >>s   /XObject <<(   R   RO   R  R  R   R  (   R{   R   R   R  RK   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   _putresourcedictK  s    0
-
c         C  sl   |  j    |  j   t |  j  |  j d <|  j d  |  j d  |  j   |  j d  |  j d  d  S(   Ni   s   2 0 objs   <<s   >>R  (   R  R  R   RL   RI   R   R  (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   _putresourcesW  s    


c         C  s>  |  j  d |  j d t d   t |  d  rQ |  j  d |  j |  j   n  t |  d  r |  j  d |  j |  j   n  t |  d  r |  j  d	 |  j |  j   n  t |  d
  r |  j  d |  j |  j   n  t |  d  r|  j  d |  j |  j   n  |  j  d |  j d t	 j
   j d    d  S(   Ns
   /Producer s   PyFPDF s    http://pyfpdf.googlecode.com/R   s   /Title R   s	   /Subject R   s   /Author R   s
   /Keywords R   s	   /Creator s   /CreationDate s   D:s   %Y%m%d%H%M%S(   R   R  t   FPDF_VERSIONR:  R   R   R   R   R   R   t   nowt   strftime(   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   _putinfob  s    "     c         C  s
  |  j  d  |  j  d  |  j d k r9 |  j  d  np |  j d k rX |  j  d  nQ |  j d k rw |  j  d  n2 t |  j t  s |  j  t d	 |  j d
   n  |  j d k r |  j  d  n> |  j d k r |  j  d  n |  j d k r|  j  d  n  d  S(   Ns   /Type /Catalogs   /Pages 1 0 RR   s   /OpenAction [3 0 R /Fit]RG   s   /OpenAction [3 0 R /FitH null]R   s$   /OpenAction [3 0 R /XYZ null null 1]s%   /OpenAction [3 0 R /XYZ null null %s]id   R   s   /PageLayout /SinglePageR   s   /PageLayout /OneColumnR   s   /PageLayout /TwoColumnLeft(   R   R   R   R   R   R   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   _putcatalogp  s      c         C  s   |  j  d |  j  d  S(   Ns   %PDF-(   R   Rz   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt
   _putheader  s    c         C  sb   |  j  d t |  j d   |  j  d t |  j  d  |  j  d t |  j d  d  d  S(   Ns   /Size i   s   /Root s    0 Rs   /Info (   R   R   RK   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   _puttrailer  s    c         C  s~  |  j    |  j   |  j   |  j   |  j d  |  j   |  j d  |  j d  |  j   |  j d  |  j   |  j d  |  j d  t |  j  } |  j d  |  j d t	 |  j
 d   |  j d  x; t d |  j
 d  D]# } |  j t d |  j |   q W|  j d	  |  j d  |  j   |  j d  |  j d
  |  j |  |  j d  d |  _ d  S(   Ns   <<s   >>R  t   xrefs   0 i   s   0000000000 65535 f s   %010d 00000 n t   trailert	   startxrefs   %%EOFi   (   R  R  R  R  R   R  R  R   RL   R   RK   R   R   RI   R  RN   (   R{   t   oR   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR     s6    






!
c         C  s  |  j  d 7_  i d d 6|  j |  j  <d |  _ |  j |  _ |  j |  _ d |  _ d |  _ | sv| r |  j	 | |  j
  \ |  _ |  _ n |  j |  _ |  j |  _ |  j |  j
 |  _ |  j |  j
 |  _ | s |  j } n | d j   } | d k r|  j |  _ |  j |  _ n |  j |  _ |  j |  _ |  j |  j
 |  _ |  j |  j
 |  _ | |  _ |  j |  j |  _ | |  _ n  |  j |  j |  j  d <|  j |  j |  j  d	 <d  S(
   Ni   R,   R  i   id   i    R)   Ro   Rp   (   RJ   RM   RN   R   R   R   R   RX   R[   Rg   Re   Rh   Ri   Rj   Rk   Rl   R&   Rn   R  Ro   Rp   Rr   Rs   Rq   R   R   (   R{   R|   R~   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR     s:    			$	c         C  s   d |  _  d  S(   Ni   (   RN   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR     s    c         C  sF   |  j  d 7_  t |  j  |  j |  j  <|  j t |  j   d  d  S(   Ni   s    0 obj(   RK   R   RL   RI   R   R   (   R{   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR    s    c         C  s   |  j  d } |  j  d } |  j | t  |  j | j d  } t d | |  j |  j | | d |  j |  j | |  j | d |  j	  S(   NR  R  R   s   %.2f %.2f %.2f %.2f re fg     @@(
   R   R   Rd  Ra   t   countR   Re   Rs   R   RZ   (   R{   R   R   RU  R  R  Rr   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRT    s    &c         C  sm   | d k rX | j  d  s* | j  d  rE t t |  j    } n t | d  } | S|  j d |  d S(   s   Load external fileR  s   http://s   https://R   s$   Unknown resource loading reason "%s"N(   t
   startswithR   R   RJ  R!   Rf   (   R{   t   reasonR%   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   load_resource  s    c         C  sU  d  } y|  j d |  } xt rt j d | j d   \ } } | d k s] | d k  rl t d   q | d k r t d   q | d	 k s| d
 k r | d k s| d k r | d k r q t j d | j d   \ } | d k r| j | d  n d } | d k r!| d k si| d k r9| d k si| d k rQ| d k si| d k r | d k r t j d |  \ } } }	 }
 |
 d k rd n |
 d k rd n d } Pq q WWnD t k
 r | r| j	   n  |  j
 d | t t    f  n X|  | j d  | j   } Wd  QXi |	 d 6| d  6| d! 6| d" 6d# d$ 6| d% 6S(&   NR  t   BBi   i   i   s   No JPEG marker foundi   s   No JPEG SOF marker foundi   i   i   i   i   s   >HR,   i   i   i   i   i   i   i   s   >BHHBi   t	   DeviceRGBi   R  R  s.   Missing or incorrect image file: %s. error: %si    Rr   Rs   R  R  t	   DCTDecodeR   R  (   R    R   Rd  t   structt   unpackRJ  t   SyntaxErrort   unpack_fromt	   ExceptionR   Rf   R   R   t   seek(   R{   R%   R   t
   markerHight	   markerLowt   dataSizeR  R  t   heightR   t   layerst   colspace(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR    s<    	!%*$c         C  s   t  d  k r |  j d  n  y t  j |  } Wn1 t k
 rb |  j d | t t    f  n Xt j d t	 d d   } | j
 } Wd  QXd | j k r | j | d | j d n | j |  |  j |  } t j |  | S(   Ns   PIL is required for GIF supports.   Missing or incorrect image file: %s. error: %st   deletet   suffixs   .pngt   transparency(   R   R    Rf   R!   R  R   R   t   tempfilet   NamedTemporaryFileRR  R  R  t   saveR  R  t   unlink(   R{   R%   t   imR   t   tmpR  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR    s    $c         C  s  |  j  d |  } | j d  j d  } dB } t sH | j d  } n  | | k rh |  j d	 |  n  | j d
  | j d
  j d  } | d k r |  j d |  n  |  j |  } |  j |  } t | j d   } | d k r |  j d |  n  t | j d   }	 |	 d k s-|	 d
 k r6d }
 nG |	 d k sN|	 d k rWd }
 n& |	 d k rld }
 n |  j d |  t | j d   d k r|  j d |  n  t | j d   d k r|  j d |  n  t | j d   d k r
|  j d |  n  | j d
  d } |
 d k r6| d 7} n
 | d 7} | d t |  d t |  d 7} d } d } t rt   n t   } d } x| d  k r|  j |  } | j d
  j d  } | d  k r| j |  } | j d
  q| d! k r| j |  } |	 d k r6t t
 | d d   g } n |	 d k rt t
 | d d   t t
 | d d   t t
 | d" d   g } n0 | j d# j d   } | d$ k r| g } n  | j d
  q| d% k r| | j |  7} | j d
  q| d& k r	Pq| j | d
  qW|
 d k rE| rE|  j d' |  n  | j   i | d( 6| d) 6|
 d* 6| d+ 6d, d- 6| d. 6| d/ 6| d0 6} |	 d
 k rt j |  } t d  } t d  } |	 d
 k rd | } xt |  D] } d | | } | t | |  7} | t | |  7} t
 | | d |  } t j d1 j d2  d3 t j } t j d4 j d2  d3 t j } | | j d5   |  7} | | j d6   |  7} qWn d
 | } x t |  D] } d | | } | t | |  7} | t | |  7} t
 | | d |  } t j d7 j d2  d3 t j } t j d8 j d2  d3 t j } | | j d9   |  7} | | j d:   |  7} qW~ t j |  } t j |  | d; <|  j d< k  rd< |  _ qn  | | d= <| S(C   NR  i   R  s   t   PNGs   s   
s   s   Not a PNG file: i   t   IHDRs   Incorrect PNG file: i   s   16-bit depth not supported: i    R  i   i   R  i   R  s   Unknown color type: s   Unknown compression method: s   Unknown filter method: s   Interlacing not supported: s   /Predictor 15 /Colors t   3t   1s    /BitsPerComponent s
    /Columns R,   t   PLTEt   tRNSi   R  it   IDATt   IENDs   Missing palette in Rr   Rs   R  R  t   FlateDecodeR   R  R  R  s   (.).t   asciiR*  s   .(.)c         S  s   |  j  d  S(   Ni   (   t   group(   t   m(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   <lambda>  s    c         S  s   |  j  d  S(   Ni   (   R#  (   R$  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR%    s    s   (...).s   ...(.)c         S  s   |  j  d  S(   Ni   (   R#  (   R$  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR%    s    c         S  s   |  j  d  S(   Ni   (   R#  (   R$  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR%    s    R  s   1.4R  s   PNGs   PNGs   PNG
s   PNG
s   PNG

(   R   RJ  R  R   Rf   t	   _freadintR   R   t   bytesR    R   t   findR  R   R  t
   decompressR   R   R/  RI  t   DOTALLR0  R   Rz   (   R{   R%   R   t   magict	   signaturet   chunkRr   Rs   R  t   ctR  R  R  R  R  RK   R
  Rl  R  R  t   colort   alphat   lengthR   R   t   re_ct   re_a(    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR  '  s     			
&H
>
!! 
!!
c         C  s0   y! t  j d | j d   d SWn d  SXd  S(   Ns   >Ii   i    (   R  R  RJ  R    (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR&    s    !c         C  s   d |  j  |  d S(   NRb  Rc  (   RQ  (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR    s    c         C  s4   | j  d d  j  d d  j  d d  j  d d  S(	   Ns   \s   \\Rc  s   \)Rb  s   \(s   s   \r(   R  (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyRQ    s    c         C  s+   |  j  d  |  j  |  |  j  d  d  S(   Nt   streamt	   endstream(   R   (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR    s    c         C  s   t  r' t | t  r' | j d  } nF t  rO t | t  rO | j d  } n t | t  sm t |  } n  |  j d k r |  j	 |  j
 d c | d 7<n |  j | d 7_ d  S(   NR  i   R  s   
(   R   R   R'  R  R   R  R   R   RN   RM   RJ   RL   (   R{   R   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR     s    !g      ?g      $@c         C  s  | d } | } i d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6} |  j  d  | }	 t |	  d d k r d |	 }	 n  d |	 j   d }	 x?t d t |	  d  D]%}
 |	 |
 } |	 |
 d } | | j   k rt d |   n  | | j   k r5t d |   n  d  } x? t d t | |   D]$ } | | | | | | | 7} qUWxr t d t |   D][ } | | d! k r| } n | } | d d k r|  j | | | | d"  n  | | 7} qWq Wd# S($   s/   Barcode I2of5 (numeric), adds a 0 if odd lenghtg      @t   nnwwnt   0t   wnnnwR  t   nwnnwR  t   wwnnnR  t   nnwnwt   4t   wnwnnt   5t   nwwnnt   6t   nnnwwt   7t   wnnwnt   8t   nwnwnt   9t   nnt   At   wnt   Zi    i   t   AAt   ZAi   s   Char "%s" invalid for I25: R,   RK   R   N(   R   R   Rm   R   t   keysR   R   (   R{   RU  R   R   Rr   Rs   t   narrowt   widet   bar_chart   codeR   t   char_bart
   char_spacet   seqR   t   barRv   (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   interleaved2of5  s6    

 "	g      ?g      @c         C  s  i | d 6| d d 6} i, d d 6d d 6d d	 6d
 d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d  d! 6d" d# 6d$ d% 6d& d' 6d( d) 6d* d+ 6d, d- 6d. d/ 6d0 d1 6d2 d3 6d4 d5 6d6 d7 6d8 d9 6d: d; 6d< d= 6d> d? 6d@ dA 6dB dC 6dD dE 6dF dG 6dH dI 6dJ dK 6dL dM 6dN dO 6dP dQ 6dR dS 6dT dU 6dV dW 6dX dY 6dZ d[ 6} |  j  d\  x | j   D] } | | k rt d] |   n  x\ t | |  D]J \ }	 }
 |	 d^ d\ k r|  j | | | |
 | d#  n  | | |
 7} qW| | d 7} qlWd_ S(`   s   Barcode 3of9Rr   g      @RK   t	   nnnwwnwnnR7  t	   wnnwnnnnwR  t	   nnwwnnnnwR  t	   wnwwnnnnnR  t	   nnnwwnnnwR<  t	   wnnwwnnnnR>  t	   nnwwwnnnnR@  t	   nnnwnnwnwRB  t	   wnnwnnwnnRD  t	   nnwwnnwnnRF  t	   wnnnnwnnwRH  t	   nnwnnwnnwR   t	   wnwnnwnnnRa  t	   nnnnwwnnwR  t	   wnnnwwnnnt   Et	   nnwnwwnnnR   t	   nnnnnwwnwt   Gt	   wnnnnwwnnt   Ht	   nnwnnwwnnR  t	   nnnnwwwnnRq  t	   wnnnnnnwwt   Kt	   nnwnnnnwwRF   t	   wnwnnnnwnt   Mt	   nnnnwnnwwt   Nt	   wnnnwnnwnt   Ot	   nnwnwnnwnR)   t	   nnnnnnwwwRX  t	   wnnnnnwwnR`  t	   nnwnnnwwnR   t	   nnnnwnwwnR_  t	   wwnnnnnnwR   t	   nwwnnnnnwt   Vt	   wwwnnnnnnt   Wt	   nwnnwnnnwt   Xt	   wwnnwnnnnt   Yt	   nwwnwnnnnRJ  t	   nwnnnnwnwt   -t	   wwnnnnwnnR  t	   nwwnnnwnnR   t	   nwnnwnwnnt   *t	   nwnwnwnnnt   $t	   nwnwnnnwnR  t	   nwnnnwnwnR  t	   nnnwnwnwnt   %i    s   Invalid char "%s" for Code39i   N(   R   R  R   t	   enumerateR   (   R{   RU  R   R   Rr   Rs   t   dimt   charsR\  R   RD  (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   code39  s4     N(\   t   __name__t
   __module__t   __doc__R   t   staticmethodRg   R   Rt   R   R   R   Rw   Rx   Ry   R   R   R   R   R   R   R   Rf   R!   R   RR  R   R   R   R   R   R   R   R   R   R   R   R   R   R   RF  R   RL  R   RN  RP  RO  RW  R    R]  R^  Rp  R}  R~  R  Rg  R  R  R  R  R  R  R   RH   R  R  R  R  R  R  R  R  R  R  R  R  R  R   R   R   R  RT  R   R  R  R  R&  R  RQ  R  R   RV  R  (    (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyR(   9   s   X	
													@				
	
$r2						!\qCB					#					T		d		.								!	&					$		r					0(   gQO@g33333@(   g
ףp=@gQO@(   gףp=
Oz@g
ףp=@(   id  i  (   id  i  (2   t
   __future__R    R   R   t	   functoolsR   R   R8  R  R  R  R  R/  R  t   ttfontsR   RO   R   t   phpR   R   R   R	   R
   t   py3kR   R   R   R   R   R   R   R   R   R   R  R  R  t   dirnamet   __file__R  R!  R    R#  R   R   R   R'   t   objectR(   (    (    (    s&   /var/www/ficnx/bin/pyfpdf/fpdf/fpdf.pyt   <module>   s.   T(F!
		
