
    SAi#                     8   S SK r S SKJrJrJrJr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   \\\!\"\#4      r$\ RJ                  " \&5      r' " S S5      r( " S S\(5      r) " S S\(5      r*g)    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                   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/   r0   r1   s       r#   __exit__PDFDevice.__exit__0   s    

r&   c                     g r   r(   r)   s    r#   r3   PDFDevice.close3       r&   r!   c                     Xl         g r   )r!   )r"   r!   s     r#   set_ctmPDFDevice.set_ctm6   s    r&   tagpropsr   c                     g r   r(   r"   r<   r=   s      r#   	begin_tagPDFDevice.begin_tag9   r8   r&   c                     g r   r(   r)   s    r#   end_tagPDFDevice.end_tag<   r8   r&   c                     g r   r(   r?   s      r#   do_tagPDFDevice.do_tag?   r8   r&   pagec                     g r   r(   )r"   rH   r!   s      r#   
begin_pagePDFDevice.begin_pageB   r8   r&   c                     g r   r(   r"   rH   s     r#   end_pagePDFDevice.end_pageE   r8   r&   namebboxmatrixc                     g r   r(   )r"   rP   rQ   rR   s       r#   begin_figurePDFDevice.begin_figureH   r8   r&   c                     g r   r(   )r"   rP   s     r#   
end_figurePDFDevice.end_figureK   r8   r&   graphicstater   strokefillevenoddpathc                     g r   r(   )r"   rY   rZ   r[   r\   r]   s         r#   
paint_pathPDFDevice.paint_pathN   s     	r&   streamc                     g r   r(   )r"   rP   ra   s      r#   render_imagePDFDevice.render_imageX   r8   r&   	textstater   seqncsc                     g r   r(   )r"   re   rf   rg   rY   s        r#   render_stringPDFDevice.render_string[   s     	r&   )r!   r    )r    r   r   N)r   r   r   Nr   )#__name__
__module____qualname____firstlineno____doc__r$   strr*   r-   objectr4   r3   r   r:   r   r   r@   rC   rF   r   rJ   rN   r   rT   rW   boolr   r   r_   r   rc   
PDFTextSeqr   ri   __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	)PDFTextDevicee   re   r   rf   rg   rY   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_matrixrR   fontfontsizescaling	charspace	wordspaceriseis_multibyteis_verticalrender_string_vertical
linematrixrender_string_horizontal)r"   re   rf   rg   rY   rR   r{   r|   r}   r~   r   r   dxscales                r#   ri   PDFTextDevice.render_stringf   s7    xx###""9#3#3TXX>~~%%##d*'''1	'''1	~~I("W,#'#>#>$$$I  $(#@#@$$$I r&   rR   posr{   r|   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$ )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"   rf   rR   r   r{   r|   r}   r~   r   r   r   rg   rY   xyneedcharspaceobjcids                     r#   r   &PDFTextDevice.render_string_horizontal   s     C#U|,,S7]" $C'';;s+C$))..v1v> $	 	A byY$(M ," >sgEij- 2 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 ," <SGCgh- 2 vr&   r   c	                     gNr   r(   )	r"   rR   r{   r|   r}   r   r   rg   rY   s	            r#   r   PDFTextDevice.render_char   s     r&   r(   )rl   rm   rn   ro   rt   r   ri   r   r   r   r   r   r   r   r   ru   r(   r&   r#   rw   rw   e   s   0!0 0 	0
 (0 
0d** * 	*
 * * * * * * * * (* 
*X** * 	*
 * * * * * * * * (* 
*X  	
     ( 
r&   rw   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&   re   r   rf   rg   rY   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 )r{   r   rq   r   make_compat_bytesr   r   	to_unichrr   _writeenc)r"   re   rf   rg   rY   r{   textr   charsr   chars              r#   ri   TagExtractor.render_string  s     ~~C#s##--c2c5))KK$E>>#.DLD   	EIIdO$ , s   2B55
CCrH   r!   c                     SU R                   [        R                  " UR                  5      UR                  4-  nU R                  U5        g )Nz$<page id="%s" bbox="%s" rotate="%d">)r   r   bbox2strmediaboxrotater   )r"   rH   r!   outputs       r#   rJ   TagExtractor.begin_page#  s=    7KKNN4==)KK;
 

 	Fr&   c                 P    U R                  S5        U =R                  S-  sl        g )Nz</page>
   )r   r   rM   s     r#   rN   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
   rq   rP   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      -  nU R                  U5        g )Nz</%s>)	r   rq   r   popr   r   r
   rP   r   )r"   r<   r   s      r#   rC   TagExtractor.end_tag<  sX    {{,C,,{kkoob!%))Dchh$788Er&   c                 \    U R                  X5        U R                  R                  S5        g )Nr   )r@   r   r   r?   s      r#   rF   TagExtractor.do_tagB  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._writeF  s!    

$**-.r&   )r   r   r   r   )zutf-8r   rk   )rl   rm   rn   ro   r   rq   r$   rt   r   ri   r   r   rJ   rN   r   r   r@   rC   rF   r   ru   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   r   r   r   rt   	getLoggerrl   r   r   rw   r   r(   r&   r#   <module>r      s    	 	 	  + : $ ' ' ; ;  eC-./
			8	$? ?DVI VrI/9 I/r&   