
    %oi#                     8   S SK r S SKJrJr  S SKJrJrJrJr  S SK	J
r
  S SKJr  S SKJrJr  S SKJr  S SKJr  S S	KJr  S S
KJrJrJrJr  \(       a  S SKJrJrJrJr  \\ \!-  \"-     r#\ RH                  " \%5      r& " S S5      r' " S S\'5      r( " S S\'5      r)g)    N)IterableSequence)TYPE_CHECKINGBinaryIOOptionalcast)utils)PDFColorSpace)PDFFontPDFUnicodeNotDefined)PDFPage)	PDFStream)	PSLiteral)MatrixPathSegmentPointRect)PDFGraphicStatePDFResourceManager	PDFStackTPDFTextStatec                   j   \ rS rSrSrS,S jrS\4S jrS-S jrS\	S	\	S
\	SS4S jr
S.S jrS\SS4S jrS/S\S\S   SS4S jjrS.S jrS/S\S\S   SS4S jjrS\S\SS4S jrS\SS4S jrS\S\S\SS4S jrS\SS4S jrSSS\S \S!\S"\\   SS4S# jrS\S$\SS4S% jrS&S'S(\S)\ SSSS4
S* jr!S+r"g)0	PDFDevice    zGTranslate the output of PDFPageInterpreter to the output that is neededreturnNc                     Xl         S U l        g N)rsrcmgrctm)selfr   s     N/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pdfminer/pdfdevice.py__init__PDFDevice.__init__#   s    "&    c                     g)Nz<PDFDevice> r    s    r!   __repr__PDFDevice.__repr__'   s    r$   c                     U $ r   r&   r'   s    r!   	__enter__PDFDevice.__enter__*   s    r$   exc_typeexc_valexc_tbc                 $    U R                  5         g r   )close)r    r-   r.   r/   s       r!   __exit__PDFDevice.__exit__-   s    

r$   c                     g r   r&   r'   s    r!   r1   PDFDevice.close0       r$   r   c                     Xl         g r   )r   )r    r   s     r!   set_ctmPDFDevice.set_ctm3   s    r$   tagpropsr   c                     g r   r&   r    r:   r;   s      r!   	begin_tagPDFDevice.begin_tag6   r6   r$   c                     g r   r&   r'   s    r!   end_tagPDFDevice.end_tag9   r6   r$   c                     g r   r&   r=   s      r!   do_tagPDFDevice.do_tag<   r6   r$   pagec                     g r   r&   )r    rF   r   s      r!   
begin_pagePDFDevice.begin_page?   r6   r$   c                     g r   r&   r    rF   s     r!   end_pagePDFDevice.end_pageB   r6   r$   namebboxmatrixc                     g r   r&   )r    rN   rO   rP   s       r!   begin_figurePDFDevice.begin_figureE   r6   r$   c                     g r   r&   )r    rN   s     r!   
end_figurePDFDevice.end_figureH   r6   r$   graphicstater   strokefillevenoddpathc                     g r   r&   )r    rW   rX   rY   rZ   r[   s         r!   
paint_pathPDFDevice.paint_pathK   s     	r$   streamc                     g r   r&   )r    rN   r_   s      r!   render_imagePDFDevice.render_imageU   r6   r$   	textstater   seqncsc                     g r   r&   )r    rc   rd   re   rW   s        r!   render_stringPDFDevice.render_stringX   s     	r$   )r   r   )r   r   r   N)r   r   r   Nr   )#__name__
__module____qualname____firstlineno____doc__r"   strr(   r+   objectr2   r1   r   r8   r   r   r>   rA   rD   r   rH   rL   r   rR   rU   boolr   r   r]   r   ra   
PDFTextSeqr
   rg   __static_attributes__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                       \ rS rSrSSS\S\SSSS	4
S
 jrS\S\S\S\	S\
S\
S\
S\
S\
S\
S\SSS\4S jrS\S\S\S\	S\
S\
S\
S\
S\
S\
S\SSS\4S jrS\S\	S\
S\
S\
S\S\SSS\
4S jrSrg	)PDFTextDeviceb   rc   r   rd   re   rW   r   r   Nc                 :   U R                   c   e[        R                  " UR                  U R                   5      nUR                  nUR
                  nUR                  S-  nUR                  U-  n	UR                  U-  n
UR                  nUc   eUR                  5       (       a  Sn
SU-  U-  nUR                  5       (       a,  U R                  UUUR                  UUUU	U
UUUU5      Ul        g U R                  UUUR                  UUUU	U
UUUU5      Ul        g )Ng{Gz?r   gMbP?)r   r	   mult_matrixrP   fontfontsizescaling	charspace	wordspaceriseis_multibyteis_verticalrender_string_vertical
linematrixrender_string_horizontal)r    rc   rd   re   rW   rP   ry   rz   r{   r|   r}   r~   dxscales                r!   rg   PDFTextDevice.render_stringc   s7    xx###""9#3#3TXX>~~%%##d*'''1	'''1	~~I("W,#'#>#>$$$I  $(#@#@$$$I r$   rP   posry   rz   r{   r|   r}   r~   r   c                    Uu  pSnU H  n[        U[        [        45      (       a  UUU
-  -  nSnM*  [        U[        5      (       ah  UR	                  U5       HQ  nU(       a  X-  nXR                  [        R                  " X-U45      UUUU	UUU5      -  nUS:X  a  U(       a  X-  nSnMS     M  [        R                  SU< S35        M     X4$ )NFTr   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    rd   rP   r   ry   rz   r{   r|   r}   r~   r   re   rW   xyneedcharspaceobjcids                     r!   r   &PDFTextDevice.render_string_horizontal   s     C#U|,,S7]" $C'';;s+C$))..v1v> $	 	A byY$(M ," >gAC- 4 vr$   c                    Uu  pSnU H  n[        U[        [        45      (       a  UUU
-  -  nSnM*  [        U[        5      (       ah  UR	                  U5       HQ  nU(       a  X-  nXR                  [        R                  " X-U45      UUUU	UUU5      -  nUS:X  a  U(       a  X-  nSnMS     M  [        R                  SU< S35        M     X4$ )NFTr   z&Cannot render vertical string because r   r   r   s                     r!   r   $PDFTextDevice.render_string_vertical   s     C#U|,,S7]" $C'';;s+C$))..v1v> $	 	A byY$(M ," <SG D+ ,- 4 vr$   r   c	                     gNr   r&   )	r    rP   ry   rz   r{   r~   r   re   rW   s	            r!   r   PDFTextDevice.render_char   s     r$   r&   )rj   rk   rl   rm   rr   r
   rg   r   r   r   r   r   r   r   r   rs   r&   r$   r!   ru   ru   b   s   0!0 0 	0
 (0 
0d++ + 	+
 + + + + + + + + (+ 
+Z++ + 	+
 + + + + + + + + (+ 
+Z  	
     ( 
r$   ru   c            
           \ rS rSr SSSS\S\SS4S jjrS	S
S\S\SSSS4
S jr	S\
S\SS4S jrS\
SS4S jrSS\S\S   SS4S jjrSS jrSS\S\S   SS4S jjrS\SS4S jrSrg) TagExtractor   r   r   outfpcodecr   Nc                 b    [         R                  X5        X l        X0l        SU l        / U l        g r   )r   r"   r   r   pageno_stack)r    r   r   r   s       r!   r"   TagExtractor.__init__   s*     	4)

')r$   rc   r   rd   re   rW   r   c                    UR                   nUc   eSnU Hu  n[        U[        5      (       a  [        R                  " U5      n[        U[
        5      (       d  ME  UR                  U5      nU H  n	 UR                  U	5      n
Xj-  nM     Mw     U R                  [        R                  " U5      5        g ! [         a     MT  f = f)N )ry   r   ro   r	   make_compat_bytesr   r   	to_unichrr   _writeenc)r    rc   rd   re   rW   ry   textr   charsr   chars              r!   rg   TagExtractor.render_string
  s     ~~C#s##--c2c5))KK$E>>#.DLD   	EIIdO$ , s   2B55
CCrF   r   c                     SU R                    S[        R                  " UR                  5       SUR                   S3nU R                  U5        g )Nz
<page id="z" bbox="z
" rotate="z">)r   r	   bbox2strmediaboxrotater   )r    rF   r   outputs       r!   rH   TagExtractor.begin_page"  sJ    XennT]].K-L M{{m2' 	 	Fr$   c                 P    U R                  S5        U =R                  S-  sl        g )Nz</page>
   )r   r   rK   s     r!   rL   TagExtractor.end_page)  s    K qr$   r:   r;   r   c                    Sn[        U[        5      (       al  SR                  [        UR	                  5       5       VVs/ s H6  u  pES[
        R                  " U5       S[
        R                  " U5       S3PM8     snn5      nS[
        R                  " [        [        UR                  5      5       U S3nU R                  U5        U R                  R                  U5        g s  snnf )Nr    z=""<>)r   dictjoinsorteditemsr	   r   make_compat_strr   ro   rN   r   r   append)r    r:   r;   skvout_ss          r!   r>   TagExtractor.begin_tag-  s    eT"" #)"7"7 		!~R(=(=a(@'AC"7A EIId3123A3a8E3s   =C%
c                    U R                   (       d   [        U R                  5      5       eU R                   R                  S5      nS[        R
                  " [        [        UR                  5      5       S3nU R                  U5        g )Nz</r   )	r   ro   r   popr	   r   r   rN   r   )r    r:   r   s      r!   rA   TagExtractor.end_tag:  s]    {{,C,,{kkoob!UYYtC234A6Er$   c                 \    U R                  X5        U R                  R                  S5        g )Nr   )r>   r   r   r=   s      r!   rD   TagExtractor.do_tag@  s    s"r$   r   c                 l    U R                   R                  UR                  U R                  5      5        g r   )r   writeencoder   )r    r   s     r!   r   TagExtractor._writeD  s!    

$**-.r$   )r   r   r   r   )zutf-8r   ri   )rj   rk   rl   rm   r   ro   r"   rr   r
   rg   r   r   rH   rL   r   r   r>   rA   rD   r   rs   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   r   r   r   rr   	getLoggerrj   r   r   ru   r   r&   r$   r!   <module>r      s     .   + : $ ' ' ; ;  cEkE)*
			8	$? ?DXI XvH/9 H/r$   