
    +Si#                     .   d dl Z d dlmZmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZmZ erd dlmZmZmZmZ ee e!z  e"z     Z# e jH                  e%      Z& G d d      Z' G d de'      Z( G d de'      Z)y)    N)IterableSequence)TYPE_CHECKINGBinaryIOOptionalcast)utils)PDFColorSpace)PDFFontPDFUnicodeNotDefined)PDFPage)	PDFStream)	PSLiteral)MatrixPathSegmentPointRect)PDFGraphicStatePDFResourceManager	PDFStackTPDFTextStatec                   >   e Zd ZdZd*dZdefdZd+dZdeded	eddfd
Z	d,dZ
deddfdZd-deded   ddfdZd,dZd-deded   ddfdZdededdfdZdeddfdZdedededdfdZdeddfdZdddeded ed!ee   ddfd"Zded#eddfd$Zd%d&d'ed(eddddf
d)Z y).	PDFDevicezGTranslate the output of PDFPageInterpreter to the output that is neededreturnNc                      || _         d | _        y N)rsrcmgrctm)selfr   s     [/var/www/html/leadgen/airagagent/rag_env/lib/python3.12/site-packages/pdfminer/pdfdevice.py__init__zPDFDevice.__init__#   s    "&    c                      y)Nz<PDFDevice> r   s    r    __repr__zPDFDevice.__repr__'   s    r"   c                     | S r   r$   r%   s    r    	__enter__zPDFDevice.__enter__*   s    r"   exc_typeexc_valexc_tbc                 $    | j                          y r   )close)r   r)   r*   r+   s       r    __exit__zPDFDevice.__exit__-   s    

r"   c                      y r   r$   r%   s    r    r-   zPDFDevice.close0       r"   r   c                     || _         y r   )r   )r   r   s     r    set_ctmzPDFDevice.set_ctm3   s	    r"   tagpropsr   c                      y r   r$   r   r3   r4   s      r    	begin_tagzPDFDevice.begin_tag6   r0   r"   c                      y r   r$   r%   s    r    end_tagzPDFDevice.end_tag9   r0   r"   c                      y r   r$   r6   s      r    do_tagzPDFDevice.do_tag<   r0   r"   pagec                      y r   r$   )r   r<   r   s      r    
begin_pagezPDFDevice.begin_page?   r0   r"   c                      y r   r$   r   r<   s     r    end_pagezPDFDevice.end_pageB   r0   r"   namebboxmatrixc                      y r   r$   )r   rB   rC   rD   s       r    begin_figurezPDFDevice.begin_figureE   r0   r"   c                      y r   r$   )r   rB   s     r    
end_figurezPDFDevice.end_figureH   r0   r"   graphicstater   strokefillevenoddpathc                      y r   r$   )r   rI   rJ   rK   rL   rM   s         r    
paint_pathzPDFDevice.paint_pathK   s     	r"   streamc                      y r   r$   )r   rB   rP   s      r    render_imagezPDFDevice.render_imageU   r0   r"   	textstater   seqncsc                      y r   r$   )r   rS   rT   rU   rI   s        r    render_stringzPDFDevice.render_stringX   s     	r"   )r   r   r   N)r   r   r   Nr   )!__name__
__module____qualname____doc__r!   strr&   r(   objectr.   r-   r   r2   r   r   r7   r9   r;   r   r>   rA   r   rF   rH   boolr   r   rO   r   rR   
PDFTextSeqr
   rW   r$   r"   r    r   r       s   Q'#  & & T 6 d Y x/D PT ) H[,A T w V  W   D & T s t '  	
  {# 
 i D !  	
 ( 
r"   r   c                       e Zd Zdddededdddf
d	Zded
ededede	de	de	de	de	de	dedddefdZ
ded
ededede	de	de	de	de	de	dedddefdZd
edede	de	de	dededdde	fdZy)PDFTextDevicerS   r   rT   rU   rI   r   r   Nc                     | j                   J t        j                  |j                  | j                         }|j                  }|j
                  }|j                  dz  }|j                  |z  }	|j                  |z  }
|j                  }|J |j                         rd}
d|z  |z  }|j                         r,| j                  |||j                  ||||	|
||||      |_        y | j                  |||j                  ||||	|
||||      |_        y )Ng{Gz?r   gMbP?)r   r	   mult_matrixrD   fontfontsizescaling	charspace	wordspaceriseis_multibyteis_verticalrender_string_vertical
linematrixrender_string_horizontal)r   rS   rT   rU   rI   rD   re   rf   rg   rh   ri   rj   dxscales                r    rW   zPDFTextDevice.render_stringc   s1    xx###""9#3#3TXX>~~%%##d*'''1	'''1	~~I("W,#'#>#>$$$I  $(#@#@$$$I r"   rD   posre   rf   rg   rh   ri   rj   rp   c                 t   |\  }}d}|D ]  }t        |t        t        f      r|||
z  z  }d}$t        |t              r]|j	                  |      D ]H  }|r||z  }|| j                  t        j                  |||f      ||||	|||      z  }|dk(  r|r||z  }d}J t        j                  d|d        ||fS )NFT    z(Cannot render horizontal string because $ is not a valid int, float or bytes.

isinstanceintfloatbytesdecoderender_charr	   translate_matrixloggerwarningr   rT   rD   rq   re   rf   rg   rh   ri   rj   rp   rU   rI   xyneedcharspaceobjcids                     r    ro   z&PDFTextDevice.render_string_horizontal   s     A 	C#U|,S7]" $C';;s+ )C$Y))..v1v> $	 	A byYY$(M)" >gAC-	4 1vr"   c                 t   |\  }}d}|D ]  }t        |t        t        f      r|||
z  z  }d}$t        |t              r]|j	                  |      D ]H  }|r||z  }|| j                  t        j                  |||f      ||||	|||      z  }|dk(  r|r||z  }d}J t        j                  d|d        ||fS )NFTrs   z&Cannot render vertical string because rt   ru   r   s                     r    rm   z$PDFTextDevice.render_string_vertical   s     A 	C#U|,S7]" $C';;s+ )C$Y))..v1v> $	 	A byYY$(M)" <SG D+ ,-	4 1vr"   r   c	                      yNr   r$   )	r   rD   re   rf   rg   rj   r   rU   rI   s	            r    r{   zPDFTextDevice.render_char   s     r"   )rY   rZ   r[   r`   r
   rW   r   r   r   rx   ro   rm   rw   r{   r$   r"   r    rb   rb   b   s   0!0 0 	0
 (0 
0d++ + 	+
 + + + + + + + + (+ 
+Z++ + 	+
 + + + + + + + + (+ 
+Z  	
     ( 
r"   rb   c            
           e Zd Z	 ddddededdfdZdd	d
ededdddf
dZde	de
ddfdZde	ddfdZddeded   ddfdZddZddeded   ddfdZdeddfdZy)TagExtractorr   r   outfpcodecr   Nc                 h    t         j                  | |       || _        || _        d| _        g | _        y r   )r   r!   r   r   pageno_stack)r   r   r   r   s       r    r!   zTagExtractor.__init__   s0     	4)

')r"   rS   r   rT   rU   rI   r   c                 f   |j                   }|J d}|D ]g  }t        |t              rt        j                  |      }t        |t
              s9|j                  |      }|D ]  }		 |j                  |	      }
||
z  } i | j                  t        j                  |             y # t        $ r Y Nw xY w)N )re   rv   r]   r	   make_compat_bytesry   rz   	to_unichrr   _writeenc)r   rS   rT   rU   rI   re   textr   charsr   chars              r    rW   zTagExtractor.render_string
  s     ~~ 	C#s#--c2c5)KK$E >>#.DDLD	 	EIIdO$ , s   %B$$	B0/B0r<   r   c                     d| j                    dt        j                  |j                         d|j                   d}| j                  |       y )Nz
<page id="z" bbox="z
" rotate="z">)r   r	   bbox2strmediaboxrotater   )r   r<   r   outputs       r    r>   zTagExtractor.begin_page"  sJ    XennT]].K-L M{{m2' 	 	Fr"   c                 P    | j                  d       | xj                  dz  c_        y )Nz</page>
   )r   r   r@   s     r    rA   zTagExtractor.end_page)  s    K qr"   r3   r4   r   c                    d}t        |t              rhdj                  t        |j	                               D cg c]4  \  }}dt        j                  |       dt        j                  |       d6 c}}      }dt        j                  t        t        |j                               | d}| j                  |       | j                  j                  |       y c c}}w )Nr    z=""<>)rv   dictjoinsorteditemsr	   r   make_compat_strr   r]   rB   r   r   append)r   r3   r4   skvout_ss          r    r7   zTagExtractor.begin_tag-  s    eT" #)"7A 		!~R(=(=a(@'ACA EIId3123A3a8E3s   9C
c                 
   | j                   sJ t        | j                               | j                   j                  d      }dt	        j
                  t        t        |j                               d}| j                  |       y )Nz</r   )	r   r]   r   popr	   r   r   rB   r   )r   r3   r   s      r    r9   zTagExtractor.end_tag:  s]    {{,C,,{kkoob!UYYtC234A6Er"   c                 ^    | j                  ||       | j                  j                  d       y )Nr   )r7   r   r   r6   s      r    r;   zTagExtractor.do_tag@  s     sE"r"   r   c                 l    | j                   j                  |j                  | j                               y r   )r   writeencoder   )r   r   s     r    r   zTagExtractor._writeD  s!    

$**-.r"   )zutf-8r   rX   )rY   rZ   r[   r   r]   r!   r`   r
   rW   r   r   r>   rA   r   r   r7   r9   r;   r   r$   r"   r    r   r      s    
 	
*%
* 
* 	
*
 

*%!% % 	%
 (% 
%0w V  W   Y  x/D  PT  ) H[,A T / / /r"   r   )*loggingcollections.abcr   r   typingr   r   r   r   pdfminerr	   pdfminer.pdfcolorr
   pdfminer.pdffontr   r   pdfminer.pdfpager   pdfminer.pdftypesr   pdfminer.psparserr   pdfminer.utilsr   r   r   r   pdfminer.pdfinterpr   r   r   r   rw   rx   ry   r`   	getLoggerrY   r}   r   rb   r   r$   r"   r    <module>r      s     .   + : $ ' ' ; ;  cEkE)*
			8	$? ?DXI XvH/9 H/r"   