
    is                         S SK Jr  S SK Jr  S SK Jr  S SK Jr  S SK Jr  S SKJr   " S S5      r " S	 S
\5      r	 " S S\5      r
g)   )mult_matrix)translate_matrix)q)bbox2str)isnumber)PDFUnicodeNotDefinedc                   p    \ rS rSrS rS rS rS rSS jrS r	SS	 jr
S
 rS rS rS rS rS rS rSrg)	PDFDevice   c                     Xl         S U l        g N)rsrcmgrctm)selfr   s     E/home/kodi/my-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                     g r   r   r   s    r   closePDFDevice.close       r   c                     Xl         g r   )r   )r   r   s     r   set_ctmPDFDevice.set_ctm   s
    r   Nc                     g r   r   r   tagpropss      r   	begin_tagPDFDevice.begin_tag   r   r   c                     g r   r   r   s    r   end_tagPDFDevice.end_tag    r   r   c                     g r   r   r"   s      r   do_tagPDFDevice.do_tag#   r   r   c                     g r   r   r   pager   s      r   
begin_pagePDFDevice.begin_page&   r   r   c                     g r   r   r   r/   s     r   end_pagePDFDevice.end_page)   r   r   c                     g r   r   )r   namebboxmatrixs       r   begin_figurePDFDevice.begin_figure,   r   r   c                     g r   r   )r   r7   s     r   
end_figurePDFDevice.end_figure/   r   r   c                     g r   r   )r   graphicstatestrokefillevenoddpaths         r   
paint_pathPDFDevice.paint_path2   r   r   c                     g r   r   )r   r7   streams      r   render_imagePDFDevice.render_image5   r   r   c                     g r   r   )r   	textstateseqs      r   render_stringPDFDevice.render_string8   r   r   )r   r   r   )__name__
__module____qualname____firstlineno__r   r   r   r   r%   r(   r+   r0   r4   r:   r=   rE   rI   rN   __static_attributes__r   r   r   r
   r
      sH    
r   r
   c                   ,    \ rS rSrS rS rS rS rSrg)PDFTextDevice>   c                    [        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R                  5       (       a  SnSU-  U-  n
UR                  5       (       a&  U R                  X#UR                  XEXgXU
5
      Ul        g U R                  X#UR                  XEXgXU
5
      Ul        g )Ng{Gz?    gMbP?)r   r9   r   fontfontsizescaling	charspace	wordspaceriseis_multibyteis_verticalrender_string_vertical
linematrixrender_string_horizontal)r   rL   rM   r9   rZ   r[   r\   r]   r^   r_   dxscales              r   rN   PDFTextDevice.render_string@   s    Y--txx8~~%%##c)'''1	'''1	~~I/G+#'#>#>Y114IW$>I  	 $(#@#@Y114IW$>I  	r   c                 
   Uu  pSnU Hu  n[        U5      (       a  XU
-  -  nSnM  UR                  U5       HB  nU(       a  X-  nXR                  [        X+U45      XEXiU5      -  nUS:X  a  U(       a  X-  nSnMD     Mw     X4$ NFT    r   decoderender_charr   r   rM   r9   posrZ   r[   r\   r]   r^   r_   re   xyneedcharspaceobjcids                   r   rd   &PDFTextDevice.render_string_horizontalU       C}}[  $;;s+C$))*:6q6*J*.'N NAbyY$(M ,  vr   c                 
   Uu  pSnU Hu  n[        U5      (       a  XU
-  -  nSnM  UR                  U5       HB  nU(       a  X-  nXR                  [        X+U45      XEXiU5      -  nUS:X  a  U(       a  X-  nSnMD     Mw     X4$ rh   rj   rm   s                   r   rb   $PDFTextDevice.render_string_verticalh   ru   r   c                     gNrY   r   )r   r9   rZ   r[   r\   r_   rs   s          r   rl   PDFTextDevice.render_char{   s    r   r   N)	rP   rQ   rR   rS   rN   rd   rb   rl   rT   r   r   r   rV   rV   >   s    *&&r   rV   c                   F    \ rS rSrS rS rS rS rSS jrS r	SS	 jr
S
rg)TagExtractor   c                 V    [         R                  X5        X l        SU l        / U l        g ry   )r
   r   outfppageno_stack)r   r   r   s      r   r   TagExtractor.__init__   s&    4)
r   c                 *   UR                   nSnU HJ  n[        U[        5      (       d  M  UR                  U5      nU H  n UR	                  U5      nXH-  nM     ML     U R                  R                  [        U5      5        g ! [
         a     MS  f = f)N )	rZ   
isinstancebytesrk   	to_unichrr   r   writer   )	r   rL   rM   rZ   textrr   charsrs   chars	            r   rN   TagExtractor.render_string   s    ~~Cc5))KK$E>>#.DLD 	  	

4! , s   B
BBc                     U R                   R                  SU R                  [        UR                  5      UR
                  4-  5        g )Nz$<page id="%s" bbox="%s" rotate="%d">)r   r   r   r   mediaboxrotater.   s      r   r0   TagExtractor.begin_page   s<    

?++x'>LM 	Nr   c                 d    U R                   R                  S5        U =R                  S-  sl        g )Nz</page>
r   )r   r   r   r3   s     r   r4   TagExtractor.end_page   s%    

%qr   Nc                 2   Sn[        U[        5      (       a/  SR                  S [        UR	                  5       5       5       5      nU R
                  R                  S[        UR                  5      < U< S35        U R                  R                  U5        g )Nr   c           	   3   r   #    U  H-  u  pS [        U5      < S[        [        U5      5      < S3v   M/     g7f) z=""N)r   str).0kvs      r   	<genexpr>)TagExtractor.begin_tag.<locals>.<genexpr>   s-      20 <BAqadAc!fI60s   57<>)r   dictjoinsorteditemsr   r   r   r7   r   append)r   r#   r$   ss       r   r%   TagExtractor.begin_tag   sn    eT"" 2!%++-02 2A

Qsxx[!453r   c                     U R                   (       d   eU R                   R                  S5      nU R                  R                  S[	        UR
                  5      -  5        g )Nz</%s>)r   popr   r   r   r7   )r   r#   s     r   r(   TagExtractor.end_tag   sB    {{{kkoob!

1SXX;./r   c                 \    U R                  X5        U R                  R                  S5        g )Nr   )r%   r   r   r"   s      r   r+   TagExtractor.do_tag   s!    s"r   )r   r   r   r   )rP   rQ   rR   rS   r   rN   r0   r4   r%   r(   r+   rT   r   r   r   r|   r|      s%     

r   r|   N)utilsr   r   r   r   r   pdffontr   r
   rV   r|   r   r   r   <module>r      s;     #    )
- -d>I >F59 5r   