
    ;3h#                     .   d dl Z d dlmZmZmZmZ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!e"e#f      Z$ e jJ                  e&      Z' G d d      Z( G d de(      Z) G d de(      Z*y)    N)TYPE_CHECKINGBinaryIOIterableListOptionalSequenceUnion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     R/var/www/html/audio-gradio/venv/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__0   s    

r$   c                      y r   r&   r'   s    r"   r/   zPDFDevice.close3       r$   r    c                     || _         y r   )r    )r!   r    s     r"   set_ctmzPDFDevice.set_ctm6   s	    r$   tagpropsr   c                      y r   r&   r!   r5   r6   s      r"   	begin_tagzPDFDevice.begin_tag9   r2   r$   c                      y r   r&   r'   s    r"   end_tagzPDFDevice.end_tag<   r2   r$   c                      y r   r&   r8   s      r"   do_tagzPDFDevice.do_tag?   r2   r$   pagec                      y r   r&   )r!   r>   r    s      r"   
begin_pagezPDFDevice.begin_pageB   r2   r$   c                      y r   r&   r!   r>   s     r"   end_pagezPDFDevice.end_pageE   r2   r$   namebboxmatrixc                      y r   r&   )r!   rD   rE   rF   s       r"   begin_figurezPDFDevice.begin_figureH   r2   r$   c                      y r   r&   )r!   rD   s     r"   
end_figurezPDFDevice.end_figureK   r2   r$   graphicstater   strokefillevenoddpathc                      y r   r&   )r!   rK   rL   rM   rN   rO   s         r"   
paint_pathzPDFDevice.paint_pathN   s     	r$   streamc                      y r   r&   )r!   rD   rR   s      r"   render_imagezPDFDevice.render_imageX   r2   r$   	textstater   seqncsc                      y r   r&   )r!   rU   rV   rW   rK   s        r"   render_stringzPDFDevice.render_string[   s     	r$   )r   r   r   N)r   r   r   Nr   )!__name__
__module____qualname____doc__r#   strr(   r*   objectr0   r/   r   r4   r   r   r9   r;   r=   r   r@   rC   r   rH   rJ   boolr   r   rQ   r   rT   
PDFTextSeqr   rY   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)PDFTextDevicerU   r   rV   rW   rK   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_matrixrF   fontfontsizescaling	charspace	wordspaceriseis_multibyteis_verticalrender_string_vertical
linematrixrender_string_horizontal)r!   rU   rV   rW   rK   rF   rg   rh   ri   rj   rk   rl   dxscales                r"   rY   zPDFTextDevice.render_stringf   s1    xx###""9#3#3TXX>~~%%##d*'''1	'''1	~~I("W,#'#>#>$$$I  $(#@#@$$$I r$   rF   posrg   rh   ri   rj   rk   rl   rr   c                    |\  }}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t        |       d        ||fS NFT    z8Invalid string type. Must by int, float or bytes but is .
isinstanceintfloatbytesdecoderender_charr   translate_matrixloggerwarningtyper!   rV   rF   rs   rg   rh   ri   rj   rk   rl   rr   rW   rK   xyneedcharspaceobjcids                     r"   rq   z&PDFTextDevice.render_string_horizontal        A 	C#U|,S7]" $C';;s+ )C$Y))..v1v> $	 	A byYY$(M)" NtTWykYZ[-	2 1vr$   c                    |\  }}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t        |       d        ||fS ru   rx   r   s                     r"   ro   z$PDFTextDevice.render_string_vertical   r   r$   r   c	                      yNr   r&   )	r!   rF   rg   rh   ri   rl   r   rW   rK   s	            r"   r~   zPDFTextDevice.render_char   s     r$   )r[   r\   r]   rb   r   rY   r   r   r   r{   rq   ro   rz   r~   r&   r$   r"   rd   rd   e   s   0!0 0 	0
 (0 
0d** * 	*
 * * * * * * * * (* 
*X** * 	*
 * * * * * * * * (* 
*X  	
     ( 
r$   rd   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$   rU   r   rV   rW   rK   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 )rg   ry   r_   r   make_compat_bytesr|   r}   	to_unichrr   _writeenc)r!   rU   rV   rW   rK   rg   textr   charsr   chars              r"   rY   zTagExtractor.render_string  s     ~~ 	C#s#--c2c5)KK$E >>#.DDLD	 	EIIdO$ , s   %B$$	B0/B0r>   r    c                     d| j                   t        j                  |j                        |j                  fz  }| j                  |       y )Nz$<page id="%s" bbox="%s" rotate="%d">)r   r   bbox2strmediaboxrotater   )r!   r>   r    outputs       r"   r@   zTagExtractor.begin_page#  s=    7KKNN4==)KK;
 

 	Fr$   c                 P    | j                  d       | xj                  dz  c_        y )Nz</page>
   )r   r   rB   s     r"   rC   zTagExtractor.end_page+  s    K qr$   r5   r6   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=""<>)ry   dictjoinsorteditemsr   r   make_compat_strr
   r_   rD   r   r   append)r!   r5   r6   skvout_ss          r"   r9   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                              z  }| j                  |       y )Nz</%s>)	r   r_   r   popr   r   r
   rD   r   )r!   r5   r   s      r"   r;   zTagExtractor.end_tag<  sX    {{,C,,{kkoob!%))Dchh$788Er$   c                 ^    | j                  ||       | j                  j                  d       y )Nr   )r9   r   r   r8   s      r"   r=   zTagExtractor.do_tagB  s     sE"r$   r   c                 l    | j                   j                  |j                  | j                               y r   )r   writeencoder   )r!   r   s     r"   r   zTagExtractor._writeF  s!    

$**-.r$   )zutf-8r   rZ   )r[   r\   r]   r   r_   r#   rb   r   rY   r   r   r@   rC   r   r   r9   r;   r=   r   r&   r$   r"   r   r      s    
 	
*%
* 
* 	
*
 

*%!% % 	%
 (% 
%0w V  W   Y  x/D  PT  ) H[,A T / / /r$   r   )+loggingtypingr   r   r   r   r   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   rz   r{   r|   rb   	getLoggerr[   r   r   rd   r   r&   r$   r"   <module>r      s    	 	 	  + : $ ' ' ; ;  eC-./
			8	$? ?DVI VrI/9 I/r$   