
    ,he                        d dl Z d dlZd dlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl m"Z" ddl#m$Z$ ddl#m%Z% ddl#m&Z& d dl'Z' ejP                  e)      Z* G d  d!e      Z+ G d" d#e      Z, ed$      Z- ed%      Z. ed&      Z/ ed'      Z0 ed(      Z1 G d) d*e2      Z3 G d+ d,e2      Z4 G d- d.e2      Z5 G d/ d0e      Z6 G d1 d2e2      Z7y)3    N)BytesIO   )CMapDB)CMap)PSTypeError)PSEOF)	PSKeywordliteral_name)keyword_name)PSStackParser)LIT)KWD)settings)PDFException)	PDFStream)	PDFObjRef)resolve1)
list_value)
dict_value)stream_value)PDFFontError)PDFType1Font)PDFTrueTypeFont)PDFType3Font)
PDFCIDFont)PDFColorSpace)PREDEFINED_COLORSPACE)choplist)mult_matrix)MATRIX_IDENTITYc                       e Zd Zy)PDFResourceErrorN__name__
__module____qualname__     T/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pdfminer/pdfinterp.pyr#   r#   (       r)   r#   c                       e Zd Zy)PDFInterpreterErrorNr$   r(   r)   r*   r-   r-   +   r+   r)   r-   PDFTextFontFormImagec                   $    e Zd Zd Zd Zd Zd Zy)PDFTextStatec                     d | _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        | j                          y )Nr   d   )	fontfontsize	charspace	wordspacescalingleadingrenderriseresetselfs    r*   __init__zPDFTextState.__init__:   sH    		

 	r)   c                    d| j                   d| j                  d| j                  d| j                  d| j                  d| j
                  d| j                  d| j                  d	| j                  d
| j                  dS )Nz<PDFTextState: font=z, fontsize=z, charspace=z, wordspace=z,  scaling=z
, leading=z	, render=z, rise=z
,  matrix=z, linematrix=>)
r7   r8   r9   r:   r;   r<   r=   r>   matrix
linematrixr@   s    r*   __repr__zPDFTextState.__repr__H   sM     DMM4>>4>>t||T[[$))doo/ 	0r)   c                 n   t               }| j                  |_        | j                  |_        | j                  |_        | j                  |_        | j
                  |_        | j                  |_        | j                  |_        | j                  |_        | j                  |_	        | j                  |_
        |S N)r4   r7   r8   r9   r:   r;   r<   r=   r>   rE   rF   rA   objs     r*   copyzPDFTextState.copyP   s|    n99}}llll[[
99[[

r)   c                 (    t         | _        d| _        y N)r   r   )r!   rE   rF   r@   s    r*   r?   zPDFTextState.reset^   s    % r)   N)r%   r&   r'   rB   rG   rL   r?   r(   r)   r*   r4   r4   8   s    0r)   r4   c                       e Zd Zd Zd Zd Zy)PDFGraphicStatec                     d| _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        y Nr   		linewidthlinecaplinejoin
miterlimitdashintentflatnessscolorncolorr@   s    r*   rB   zPDFGraphicState.__init__h   sH    	  r)   c                 L   t               }| j                  |_        | j                  |_        | j                  |_        | j                  |_        | j
                  |_        | j                  |_        | j                  |_        | j                  |_        | j                  |_	        |S rI   )
rP   rT   rU   rV   rW   rX   rY   rZ   r[   r\   rJ   s     r*   rL   zPDFGraphicState.copyx   sr    ll}}99[[
}}[[
[[

r)   c                     d| j                   d| j                  d| j                  d| j                  d| j                  d| j
                  d| j                  d| j                  d	| j                  d
S )Nz<PDFGraphicState: linewidth=z
, linecap=z, linejoin=z,  miterlimit=z, dash=z	, intent=z, flatness=z,  stroking color=z, non stroking color=rD   rS   r@   s    r*   rG   zPDFGraphicState.__repr__   sG     t}}$))T[[$--dkk+ 	,r)   N)r%   r&   r'   rB   rL   rG   r(   r)   r*   rP   rP   f   s     ,r)   rP   c                   ,    e Zd ZdZddZd ZddZd Zy)	PDFResourceManagerzRepository of shared resources.

    ResourceManager facilitates reuse of shared resources
    such as fonts and images so that large objects are not
    allocated multiple times.
    c                      || _         i | _        y rI   )caching_cached_fonts)rA   rb   s     r*   rB   zPDFResourceManager.__init__   s    r)   c                 6    |D ]  }|t         u r|t        u r y rI   )LITERAL_PDFLITERAL_TEXT)rA   procsprocs      r*   get_procsetzPDFResourceManager.get_procset   s1     	D{"% 	 	r)   c                 z    	 t        j                  |      S # t         j                  $ r |r t               cY S w xY wrI   )r   get_cmapCMapNotFoundr   )rA   cmapnamestricts      r*   rk   zPDFResourceManager.get_cmap   s8    	??8,,"" 	6M	s     ::c                    |r|| j                   v r| j                   |   }|S t        j                  d||       t        j                  r|d   t
        urt        d      d|v rt        |d         }nt        j                  rt        d      d}|dv rt        | |      }n|dk(  rt        | |      }n|d	k(  rt        | |      }n|d
v rt        | |      }n|dk(  r^t        |d         }|sJ t        |d         j                         }dD ]  }||v st        ||         ||<    | j!                  d |      }n*t        j                  rt        d|z        t        | |      }|r| j"                  r|| j                   |<   |S )Nz#get_font: create: objid=%r, spec=%rTypezType is not /FontSubtypezFont Subtype is not specified.Type1)rr   MMType1TrueTypeType3)CIDFontType0CIDFontType2Type0DescendantFontsr   )Encoding	ToUnicodezInvalid Font spec: %r)rc   loginfor   STRICTLITERAL_FONTr   r   r   r   r   r   r   r   rL   r   get_fontrb   )rA   objidspecr7   subtypedfontssubspecks           r*   r   zPDFResourceManager.get_font   s   Ud000%%e,DP M HH:E4H<|3&':;;D &tI7??&'GHH!..#D$/J&&tT2G##D$/<<!$-G##D):$;<$VAY/4462 7ADy%-d1g%6
7 }}T73??&'>'EFF#D$/,0""5)r)   N)T)F)r%   r&   r'   __doc__rB   ri   rk   r   r(   r)   r*   r`   r`      s    
	*r)   r`   c                   h    e Zd Zd Zd Zd Zd ZddZd Z e	d      Z
 e	d	      Z e	d      Zd
 Zy)PDFContentParserc                 L    || _         d| _        t        j                  | d        y rR   )streamsistreamr   rB   )rA   r   s     r*   rB   zPDFContentParser.__init__   s#    tT*r)   c                 "   | j                   s| j                  t        | j                        k  r8t	        | j                  | j                           }| xj                  dz  c_        nt        d      t        |j                               | _         y )Nr   zUnexpected EOF, file truncated?)fpr   lenr   r   r   r   get_data)rA   strms     r*   fillfpzPDFContentParser.fillfp   sd    ww||c$,,//#DLL$>?!=>>dmmo.DGr)   c                 P    | j                          t        j                  | |       y rI   )r   r   seek)rA   poss     r*   r   zPDFContentParser.seek   s    4%r)   c                 6   | j                   t        | j                        k  ry 	 | j                          | j                  j                         | _        | j                  j                  | j                        | _        | j                  r		 d| _         y d | _        vrR   )	charposr   bufr   r   tellbufposreadBUFSIZr@   s    r*   fillbufzPDFContentParser.fillbuf   sp    <<#dhh-'KKM'',,.DKww||DKK0DHxx DG r)      EIc                    | j                  |       d}d}|t        |      k  r;| j                          |rt        j                  | j
                  | j                        }t        j                  |      }||z  }| xj                  dz  c_        t        |      |k  r|j                         r|dz  }n|t        |      k  r6|t        j                  rt        j                  ||         n||   k(  r|dz  }nXd}nU	 | j
                  j                  |d   | j                        }|| j
                  | j                  |dz    z  }|dz   | _        d}|t        |      k  r;|d t        |      dz     }t        j                  dd|      }||fS # t        $ r9 || j
                  | j                  d  z  }t        | j
                        | _        Y ~w xY w)Nr   r)   r   s   (\x0d\x0a|[\x0d\x0a])$)r   r   r   six
indexbytesr   r   int2byteisspacePY3index
ValueErrorresub)rA   r   targetidatacjs          r*   get_inline_dataz PDFContentParser.get_inline_data  s   		#3v;LLNNN488DLL9,,q/	!v;!#		FAV_#''s||F1I/FW]^_W`)aFAA1vay$,,?ADHHT\\!A#66D#$Q3DLA' 3v;. %s6{1}%&vv0#t<T{ " 1DHHT\\]33D#&txx=DL1s   <AF ?GGc                 >     | j                   | j                           y rI   )add_resultspopallr@   s    r*   flushzPDFContentParser.flush#  s    $++-(r)   s   BIs   IDc                 "   || j                   u r| j                  |d       y || j                  u r	 | j                  d      \  }}t	        |      dz  dk7  rt        d|z        t        d t        d|      D              }| j                  |t	        d      z         \  }}t        ||      }| j                  ||f       | j                  || j                  f       y | j                  ||f       y # t
        $ r t        j                  r Y y w xY w)Ninline   r   z Invalid dictionary construct: %rc              3   <   K   | ]  \  }}t        |      |f  y wrI   r
   ).0r   vs      r*   	<genexpr>z.PDFContentParser.do_keyword.<locals>.<genexpr>4  s     N&1a,q/1-Ns   s   ID )
KEYWORD_BI
start_type
KEYWORD_IDend_typer   r   dictr   r   r   push
KEYWORD_EIr   r~   )rA   r   token_objsdr   rK   s           r*   
do_keywordzPDFContentParser.do_keyword+  s
   DOO#OOC*  	 doo% MM(3	Dt9q=A%%&H4&OPPNHQ<MNN"223s6{?Cd4(		3*%		301 	 IIsEl#  ?? # 	s   B+C1 1DDN)r   )r%   r&   r'   rB   r   r   r   r   r   r   r   r   r   r   r(   r)   r*   r   r      sB    
> UJUJUJr)   r   c                      e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z e Z!d Z"d  Z#d! Z$d" Z%d# Z&d$ Z'd% Z(d& Z)d' Z*d( Z+d) Z,d* Z-d+ Z.d, Z/d- Z0d. Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIdG ZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPdN ZQdO ZRdP ZSeTfdQZUdR ZVyS)TPDFPageInterpreterz'Processor for the content of a PDF pagec                      || _         || _        y rI   )rsrcmgrdevice)rA   r   r   s      r*   rB   zPDFPageInterpreter.__init__D  s    r)   c                 N    | j                  | j                  | j                        S rI   )	__class__r   r   r@   s    r*   dupzPDFPageInterpreter.dupI  s    ~~dllDKK88r)   c                 H   || _         i | _        i | _        t        j                         | _        |sy d }t        j                  t        |            D ]L  \  }}t        j                  d||       |dk(  ryt        j                  t        |            D ]W  \  }}d }t        |t              r|j                  }t        |      }| j                  j                  ||      | j                  |<   Y |dk(  rEt        j                  t        |            D ]#  \  }} |t!        |            | j
                  |<   % |dk(  r&| j                  j#                  t%        |             |dk(  st        j                  t        |            D ]  \  }	}
|
| j                  |	<    O y )Nc           	         t        | t              rt        | d         }nt        |       }|dk(  r9t        | t              r)dt        |       k  rt	        |t        | d         d         S |dk(  r?t        | t              r/dt        |       k  r!t	        |t        t        | d                     S t        j                  |      S )Nr   ICCBasedr   r   NDeviceN)	
isinstancelistr   r   r   r   r   r   get)r   names     r*   get_colorspacez9PDFPageInterpreter.init_resources.<locals>.get_colorspaceV  s    $%#DG,#D)z!jt&<c$i$T<Q+@+EFF"z$'=!s4y.$T3z$q'/B+CDD,0066r)   zResource: %r: %rr0   
ColorSpaceProcSetXObject)	resourcesfontmapxobjmapr   rL   csmapr   	iteritemsr   r|   debugr   r   r   r   r   r   ri   r   )rA   r   r   r   r   fontidr   r   csidxobjidxobjstrms              r*   init_resourcesz!PDFPageInterpreter.init_resourcesN  sk   "*//1

	7 mmJy$9: 	4FQII(!Q/F{&)mmJqM&B NNVT E!$	2 $

%d+D+/<<+@+@+MDLL(N l"$'MM*Q-$@ FLT4'5htn'EDJJt$Fi((A7i*---
1*F 4&VX+3DLL(4	4" 	r)   c                 r   g | _         || _        | j                  j                  | j                         t	               | _        t               | _        g | _        g | _	        d x| _
        | _        | j                  r>t        j                  t        j                  | j                              x| _
        | _        y rI   )gstackctmr   set_ctmr4   	textstaterP   graphicstatecurpathargstackscsncsr   r   next
itervalues)rA   r   s     r*   
init_statezPDFPageInterpreter.init_statev  s    DHH%%+-""48::"%((3>>$**+E"FFDHtxr)   c                 :    | j                   j                  |       y rI   )r   appendrJ   s     r*   r   zPDFPageInterpreter.push  s    S!r)   c                 ^    |dk(  rg S | j                   | d  }| j                   d |  | _         |S rR   )r   )rA   nxs      r*   popzPDFPageInterpreter.pop  s9    6IMM1"#cr*r)   c                     | j                   | j                  j                         | j                  j                         fS rI   )r   r   rL   r   r@   s    r*   get_current_statez$PDFPageInterpreter.get_current_state  s/    $..--/1B1B1G1G1IJJr)   c                 x    |\  | _         | _        | _        | j                  j	                  | j                          y rI   )r   r   r   r   r   )rA   states     r*   set_current_statez$PDFPageInterpreter.set_current_state  s.    8=54>4#4DHH%r)   c                 V    | j                   j                  | j                                y rI   )r   r   r   r@   s    r*   do_qzPDFPageInterpreter.do_q  s     41134r)   c                 n    | j                   r)| j                  | j                   j                                y rI   )r   r   r   r@   s    r*   do_QzPDFPageInterpreter.do_Q  s%    ;;""4;;??#45r)   c                     t        ||||||f| j                        | _        | j                  j                  | j                         y rI   )r    r   r   r   )rA   a1b1c1d1e1f1s          r*   do_cmzPDFPageInterpreter.do_cm  s:    BBB7BDHH%r)   c                 &    || j                   _        y rI   )r   rT   )rA   rT   s     r*   do_wzPDFPageInterpreter.do_w  s    &/#r)   c                 &    || j                   _        y rI   )r   rU   )rA   rU   s     r*   do_JzPDFPageInterpreter.do_J  s    $+!r)   c                 &    || j                   _        y rI   )r   rV   )rA   rV   s     r*   do_jzPDFPageInterpreter.do_j      %-"r)   c                 &    || j                   _        y rI   )r   rW   )rA   rW   s     r*   do_MzPDFPageInterpreter.do_M  s    '1$r)   c                 *    ||f| j                   _        y rI   )r   rX   )rA   rX   phases      r*   do_dzPDFPageInterpreter.do_d  s    "&r)   c                 &    || j                   _        y rI   )r   rY   )rA   rY   s     r*   do_rizPDFPageInterpreter.do_ri  s    #) r)   c                 &    || j                   _        y rI   )r   rZ   )rA   rZ   s     r*   do_izPDFPageInterpreter.do_i  r  r)   c                      y rI   r(   rA   r   s     r*   do_gszPDFPageInterpreter.do_gs  s    r)   c                 @    | j                   j                  d||f       y )Nmr   r   rA   r   ys      r*   do_mzPDFPageInterpreter.do_m      S!QK(r)   c                 @    | j                   j                  d||f       y )Nlr  r   s      r*   do_lzPDFPageInterpreter.do_l  r#  r)   c           	      H    | j                   j                  d||||||f       y )Nr   r  )rA   x1y1x2y2x3y3s          r*   do_czPDFPageInterpreter.do_c  s&    S"b"b"b9:r)   c                 D    | j                   j                  d||||f       y )Nr   r  )rA   r*  r+  r,  r-  s        r*   do_vzPDFPageInterpreter.do_v  "    S"b"b12r)   c                 D    | j                   j                  d||||f       y )Nr!  r  )rA   r(  r)  r,  r-  s        r*   do_yzPDFPageInterpreter.do_y  r1  r)   c                 :    | j                   j                  d       y )Nhr  r@   s    r*   do_hzPDFPageInterpreter.do_h  s    F#r)   c                 B   | j                   j                  d||f       | j                   j                  d||z   |f       | j                   j                  d||z   ||z   f       | j                   j                  d|||z   f       | j                   j                  d       y )Nr  r%  r5  r  )rA   r   r!  wr6  s        r*   do_rezPDFPageInterpreter.do_re  s    S!QK(S!A#qM*S!A#qsO,S!QqSM*F#r)   c                 x    | j                   j                  | j                  ddd| j                         g | _        y NTFr   
paint_pathr   r   r@   s    r*   do_SzPDFPageInterpreter.do_S  s0    t00$udllSr)   c                 D    | j                          | j                          y rI   )r7  r?  r@   s    r*   do_szPDFPageInterpreter.do_s       				r)   c                 x    | j                   j                  | j                  ddd| j                         g | _        y NFTr=  r@   s    r*   do_fzPDFPageInterpreter.do_f  s0    t00%udllSr)   c                 x    | j                   j                  | j                  ddd| j                         g | _        y rD  r=  r@   s    r*   do_f_azPDFPageInterpreter.do_f_a  s0    t00%tT\\Rr)   c                 x    | j                   j                  | j                  ddd| j                         g | _        y r<  r=  r@   s    r*   do_BzPDFPageInterpreter.do_B  s0    t00$eT\\Rr)   c                 x    | j                   j                  | j                  ddd| j                         g | _        y )NTr=  r@   s    r*   do_B_azPDFPageInterpreter.do_B_a  s0    t00$dDLLQr)   c                 D    | j                          | j                          y rI   )r7  rI  r@   s    r*   do_bzPDFPageInterpreter.do_b   rB  r)   c                 D    | j                          | j                          y rI   )r7  rK  r@   s    r*   do_b_azPDFPageInterpreter.do_b_a&  s    		r)   c                     g | _         y rI   )r   r@   s    r*   do_nzPDFPageInterpreter.do_n,  s    r)   c                      y rI   r(   r@   s    r*   do_WzPDFPageInterpreter.do_W1      r)   c                      y rI   r(   r@   s    r*   do_W_azPDFPageInterpreter.do_W_a5  rT  r)   c                     	 | j                   t        |         | _        y # t        $ r! t        j
                  rt        d|z        Y y w xY wNzUndefined ColorSpace: %r)r   r   r   KeyErrorr   r~   r-   r  s     r*   do_CSzPDFPageInterpreter.do_CS9  U    	Mzz,t"45DH 	  	M)*Dt*KLL 	M     'A
	A
c                     	 | j                   t        |         | _        y # t        $ r! t        j
                  rt        d|z        Y y w xY wrX  )r   r   r   rY  r   r~   r-   r  s     r*   do_cszPDFPageInterpreter.do_csB  r[  r\  c                 &    || j                   _        y rI   r   r[   rA   grays     r*   do_GzPDFPageInterpreter.do_GK      #' r)   c                 &    || j                   _        y rI   r   r\   ra  s     r*   do_gzPDFPageInterpreter.do_gQ  rd  r)   c                 ,    |||f| j                   _        y rI   r`  rA   rgbs       r*   do_RGzPDFPageInterpreter.do_RGW      $%q!9 r)   c                 ,    |||f| j                   _        y rI   rf  ri  s       r*   do_rgzPDFPageInterpreter.do_rg]  rn  r)   c                 .    ||||f| j                   _        y rI   r`  rA   r   r  r!  r   s        r*   do_KzPDFPageInterpreter.do_Kc      $%q!Q< r)   c                 .    ||||f| j                   _        y rI   rf  rr  s        r*   do_kzPDFPageInterpreter.do_ki  rt  r)   c                     | j                   r| j                   j                  }nt        j                  rt	        d      d}| j                  |      | j                  _        y NzNo colorspace specified!r   )r   ncomponentsr   r~   r-   r   r   r[   rA   r   s     r*   do_SCNzPDFPageInterpreter.do_SCNo  I    88$$A)*DEEA#'88A; r)   c                     | j                   r| j                   j                  }nt        j                  rt	        d      d}| j                  |      | j                  _        y rx  )r   ry  r   r~   r-   r   r   r\   rz  s     r*   do_scnzPDFPageInterpreter.do_scny  r|  r)   c                 $    | j                          y rI   )r{  r@   s    r*   do_SCzPDFPageInterpreter.do_SC      r)   c                 $    | j                          y rI   )r~  r@   s    r*   do_sczPDFPageInterpreter.do_sc  r  r)   c                      y rI   r(   r  s     r*   do_shzPDFPageInterpreter.do_sh  rT  r)   c                 8    | j                   j                          y rI   )r   r?   r@   s    r*   do_BTzPDFPageInterpreter.do_BT  s    r)   c                      y rI   r(   r@   s    r*   do_ETzPDFPageInterpreter.do_ET  rT  r)   c                      y rI   r(   r@   s    r*   do_BXzPDFPageInterpreter.do_BX  rT  r)   c                      y rI   r(   r@   s    r*   do_EXzPDFPageInterpreter.do_EX  rT  r)   c                 :    | j                   j                  |       y rI   r   do_tagrA   tags     r*   do_MPzPDFPageInterpreter.do_MP  s    3r)   c                 <    | j                   j                  ||       y rI   r  rA   r  propss      r*   do_DPzPDFPageInterpreter.do_DP  s    3&r)   c                 :    | j                   j                  |       y rI   r   	begin_tagr  s     r*   do_BMCzPDFPageInterpreter.do_BMC  s    c"r)   c                 <    | j                   j                  ||       y rI   r  r  s      r*   do_BDCzPDFPageInterpreter.do_BDC  s    c5)r)   c                 8    | j                   j                          y rI   )r   end_tagr@   s    r*   do_EMCzPDFPageInterpreter.do_EMC  s    r)   c                 &    || j                   _        y rI   )r   r9   rA   spaces     r*   do_TczPDFPageInterpreter.do_Tc      #( r)   c                 &    || j                   _        y rI   )r   r:   r  s     r*   do_TwzPDFPageInterpreter.do_Tw  r  r)   c                 &    || j                   _        y rI   )r   r;   )rA   scales     r*   do_TzzPDFPageInterpreter.do_Tz  s    !&r)   c                 (    | | j                   _        y rI   )r   r<   )rA   r<   s     r*   do_TLzPDFPageInterpreter.do_TL  s    ")r)   c                 &   	 | j                   t        |         | j                  _        || j                  _
        y # t        $ rL t
        j                  rt        d|z        | j                  j                  d i       | j                  _        Y fw xY w)NzUndefined Font id: %r)r   r   r   r7   rY  r   r~   r-   r   r   r8   )rA   r   r8   s      r*   do_TfzPDFPageInterpreter.do_Tf  s{    	B"&,,|F/C"DDNN
 #+  	B)*AF*JKK"&,,"7"7b"ADNN	Bs   '; ABBc                 &    || j                   _        y rI   )r   r=   )rA   r=   s     r*   do_TrzPDFPageInterpreter.do_Tr  s     &r)   c                 &    || j                   _        y rI   )r   r>   )rA   r>   s     r*   do_TszPDFPageInterpreter.do_Ts  s    "r)   c                     | j                   j                  \  }}}}}}||||||z  ||z  z   |z   ||z  ||z  z   |z   f| j                   _        d| j                   _        y rN   r   rE   rF   	rA   txtyarl  r   r   efs	            r*   do_TdzPDFPageInterpreter.do_Td  sf    !^^22Aq!Q!"Aq!RT"Q$Yq["Q$r!t)A+ F$*!r)   c                     | j                   j                  \  }}}}}}||||||z  ||z  z   |z   ||z  ||z  z   |z   f| j                   _        || j                   _        d| j                   _        y rN   r   rE   r<   rF   r  s	            r*   do_TDzPDFPageInterpreter.do_TD  sr    !^^22Aq!Q!"Aq!RT"Q$Yq["Q$r!t)A+ F!#$*!r)   c                 T    ||||||f| j                   _        d| j                   _        y rN   r  rA   r  rl  r   r   r  r  s          r*   do_TmzPDFPageInterpreter.do_Tm  s*    !"Aq!Q 2$*!r)   c                     | j                   j                  \  }}}}}}||||| j                   j                  |z  |z   | j                   j                  |z  |z   f| j                   _        d| j                   _        y rN   r  r  s          r*   do_T_azPDFPageInterpreter.do_T_a  sp    !^^22Aq!Q!"Aq!T^^-C-CA-Ea-GI_I_`aIabcIc d$*!r)   c                     | j                   j                  t        j                  rt	        d      y | j
                  j                  | j                   || j                  | j                  j                                y )NzNo font specified!)
r   r7   r   r~   r-   r   render_stringr   r   rL   )rA   seqs     r*   do_TJzPDFPageInterpreter.do_TJ  sZ    >>&)*>??!!$..#txxARARAWAWAYZr)   c                 (    | j                  |g       y rI   )r  rA   ss     r*   do_TjzPDFPageInterpreter.do_Tj  s    

A3r)   c                 H    | j                          | j                  |g       y rI   )r  r  r  s     r*   do__qzPDFPageInterpreter.do__q  s    

A3r)   c                 l    | j                  |       | j                  |       | j                  |g       y rI   )r  r  r  )rA   awacr  s       r*   do__wzPDFPageInterpreter.do__w  s(    

2

2

A3r)   c                      y rI   r(   r@   s    r*   do_BIzPDFPageInterpreter.do_BI  rT  r)   c                      y rI   r(   r@   s    r*   do_IDzPDFPageInterpreter.do_ID  rT  r)   c                     d|v rpd|v rlt        t        |            }| j                  j                  |dt               | j                  j                  ||       | j                  j                  |       y )NWHr   r   r   r   )stridr   begin_figurer!   render_image
end_figure)rA   rK   iobjids      r*   do_EIzPDFPageInterpreter.do_EI  s[    #:#*C\FKK$$V\?KKK$$VS1KK""6*r)   c                    t        |      }	 t        | j                  |         }t        j                  d|       |j                  d      }|t        u rd|v r| j                         }t        |d         }t        |j                  dt                    }|j                  d      }|rt        |      n| j                  j!                         }| j"                  j%                  |||       |j'                  ||gt)        || j*                               | j"                  j-                  |       y |t.        u rad|v r]d	|v rY| j"                  j%                  |d
t               | j"                  j1                  ||       | j"                  j-                  |       y 	 y # t        $ r! t        j
                  rt        d|z        Y y w xY w)NzUndefined xobject id: %rzProcessing xobj: %rrq   BBoxMatrix	Resourcesr   WidthHeightr  )r   r   r   rY  r   r~   r-   r|   r}   r   LITERAL_FORMr   r   r!   r   r   rL   r   r  render_contentsr    r   r  LITERAL_IMAGEr  )	rA   r   xobjr   interpreterbboxrE   xobjresr   s	            r*   do_DozPDFPageInterpreter.do_Do(  s   f%	V 45D
 	&-((9%l"v~((*Kd6l+D? CDF hh{+G/6
7+DNN<O<O<QIKK$$VT6:''	D6{6SWS[S[?\']KK""6* 	 %'T/h$>NKK$$V\?KKK$$VT2KK""6* 	 3  	)*Dv*MNN	s   F 'GGc                    t         j                  d|       |j                  \  }}}}|j                  dk(  r
dddd| |f}n;|j                  dk(  r	dddd||f}n#|j                  dk(  r
dddd|| f}n
dddd| | f}| j                  j                  ||       | j                  |j                  |j                  |       | j                  j                  |       y )	NzProcessing page: %rZ   r   r      i  r  )
r|   r}   mediaboxrotater   
begin_pager  r   contentsend_page)rA   pagex0y0r(  r)  r   s          r*   process_pagezPDFPageInterpreter.process_pageG  s    &-==RR;;"b!QR(C[[Cq!RR(C[[CaQRC(CaAsRC(CtS)T^^T]]DT"r)   c                     t         j                  d|||       | j                  |       | j                  |       | j	                  t        |             y )Nz1render_contents: resources=%r, streams=%r, ctm=%r)r|   r}   r   r   executer   )rA   r   r   r   s       r*   r  z"PDFPageInterpreter.render_contentsZ  sF    DGS	*I&Z()r)   c                    	 t        |      }	 	 |j                         \  }}t        |t              rt        |      }d|j                  dd      j                  dd      j                  dd      z  }t        | |      rt        | |      }t        j                  |      j                  dz
  }|r<| j                  |      }	t        j                  d	||	       t        |	      |k(  rS ||	  nMt        j                  d
|        |        n/t         j"                  rt%        d|z        | j'                  |       +# t        $ r Y y w xY w# t        $ r Y y w xY w)Nr   zdo_%s*_a"_w'_qzexec: %s %rzexec: %szUnknown operator: %r)r   r   
nextobjectr   r	   r   replacehasattrgetattrr   get_function_codeco_argcountr   r|   r   r   r   r~   r-   r   )
rA   r   parserr   rK   r   methodfuncnargsargss
             r*   r  zPDFPageInterpreter.executeb  s?   	%g.F !,,.C #y)#C( 4<<T#:#B#B3#M#U#UVY[_#``4("40D11$7CCAEE#xx		-t<t9- $K		*d312H42OPP		#/   		  ( 	+s"   D9 E 9	EE	EEN)Wr%   r&   r'   r   rB   r   r   r   r   r   r   r   r   r  r	  r  r  r  r  r  r  r  r  r"  r&  r.  r0  r3  r7  r:  r?  rA  rE  do_FrG  rI  rK  rM  rO  rQ  rS  rV  rZ  r^  rc  rg  rm  rp  rs  rv  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!   r  r  r(   r)   r*   r   r   A  s   1
9
$P K















 D










>& 7F r)   r   )8r   loggingior   cmapdbr   r   psparserr   r   r	   r   r   r   r   r    r   pdftypesr   r   r   r   r   r   r   pdffontr   r   r   r   r   pdfcolorr   r   utilsr   r    r!   r   	getLoggerr%   r|   r#   r-   re   rf   r   r  r  objectr4   rP   r`   r   r   r(   r)   r*   <module>r     s   	     !   " " #    "        " ! ! $ !  # +   " 
g!	| 		, 	
 %j6{6{6{G)6 )\%,f %,TK K`^} ^B r)   