o
    ¾Ùøià#  ã                   @   sü   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rXd dlmZmZmZmZ ee e!B e"B  Z#e  $e%¡Z&G dd„ dƒZ'G dd„ de'ƒZ(G dd„ de'ƒZ)dS )é    N)ÚIterableÚSequence)ÚTYPE_CHECKINGÚBinaryIOÚOptionalÚcast)Úutils)ÚPDFColorSpace)ÚPDFFontÚPDFUnicodeNotDefined)ÚPDFPage)Ú	PDFStream)Ú	PSLiteral)ÚMatrixÚPathSegmentÚPointÚRect)ÚPDFGraphicStateÚPDFResourceManagerÚ	PDFStackTÚPDFTextStatec                   @   sX  e Zd ZdZd<dd„Zdefdd	„Zd=d
d„Zdedededdfdd„Z	d>dd„Z
deddfdd„Zd?deded ddfdd„Zd>dd„Zd?deded ddfdd„Zdededdfd d!„Zdeddfd"d#„Zd$ed%ed&eddfd'd(„Zd$eddfd)d*„Zd+d,d-ed.ed/ed0ee ddfd1d2„Zd$ed3eddfd4d5„Zd6d7d8ed9ed+d,ddf
d:d;„Z dS )@Ú	PDFDevicezGTranslate the output of PDFPageInterpreter to the output that is neededÚrsrcmgrr   ÚreturnNc                 C   s   || _ d | _d S ©N)r   Úctm)Úselfr   © r   ú_/home/develop/edictos_py/central_edictos/env/lib/python3.10/site-packages/pdfminer/pdfdevice.pyÚ__init__#   s   
zPDFDevice.__init__c                 C   ó   dS )Nz<PDFDevice>r   ©r   r   r   r   Ú__repr__'   ó   zPDFDevice.__repr__c                 C   s   | S r   r   r!   r   r   r   Ú	__enter__*   r#   zPDFDevice.__enter__Úexc_typeÚexc_valÚexc_tbc                 C   s   |   ¡  d S r   )Úclose)r   r%   r&   r'   r   r   r   Ú__exit__-   s   zPDFDevice.__exit__c                 C   ó   d S r   r   r!   r   r   r   r(   0   r#   zPDFDevice.closer   c                 C   s
   || _ d S r   )r   )r   r   r   r   r   Úset_ctm3   s   
zPDFDevice.set_ctmÚtagÚpropsr   c                 C   r*   r   r   ©r   r,   r-   r   r   r   Ú	begin_tag6   r#   zPDFDevice.begin_tagc                 C   r*   r   r   r!   r   r   r   Úend_tag9   r#   zPDFDevice.end_tagc                 C   r*   r   r   r.   r   r   r   Údo_tag<   r#   zPDFDevice.do_tagÚpagec                 C   r*   r   r   )r   r2   r   r   r   r   Ú
begin_page?   r#   zPDFDevice.begin_pagec                 C   r*   r   r   ©r   r2   r   r   r   Úend_pageB   r#   zPDFDevice.end_pageÚnameÚbboxÚmatrixc                 C   r*   r   r   )r   r6   r7   r8   r   r   r   Úbegin_figureE   r#   zPDFDevice.begin_figurec                 C   r*   r   r   )r   r6   r   r   r   Ú
end_figureH   r#   zPDFDevice.end_figureÚgraphicstater   ÚstrokeÚfillÚevenoddÚpathc                 C   r*   r   r   )r   r;   r<   r=   r>   r?   r   r   r   Ú
paint_pathK   s   zPDFDevice.paint_pathÚstreamc                 C   r*   r   r   )r   r6   rA   r   r   r   Úrender_imageU   r#   zPDFDevice.render_imageÚ	textstater   ÚseqÚncsc                 C   r*   r   r   )r   rC   rD   rE   r;   r   r   r   Úrender_stringX   s   zPDFDevice.render_string)r   r   r   N)r   r   ©r   Nr   )!Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr"   r$   Úobjectr)   r(   r   r+   r   r   r/   r0   r1   r   r3   r5   r   r9   r:   Úboolr   r   r@   r   rB   Ú
PDFTextSeqr	   rF   r   r   r   r   r       sP    



þýüûú
ù
þýüûúr   c                   @   sÔ   e Zd Zdddededdddf
d	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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d„Zdedede	de	de	dededdde	fdd„ZdS )ÚPDFTextDevicerC   r   rD   rE   r;   r   r   Nc                 C   sÊ   | j d usJ ‚t |j| j ¡}|j}|j}|jd }|j| }	|j| }
|j	}|d us-J ‚| 
¡ r3d}
d| | }| ¡ rQ|  |||j||||	|
||||¡|_d S |  |||j||||	|
||||¡|_d S )Ng{®Gáz„?r   gü©ñÒMbP?)r   r   Úmult_matrixr8   ÚfontÚfontsizeÚscalingÚ	charspaceÚ	wordspaceÚriseÚis_multibyteÚis_verticalÚrender_string_verticalÚ
linematrixÚrender_string_horizontal)r   rC   rD   rE   r;   r8   rR   rS   rT   rU   rV   rW   Údxscaler   r   r   rF   c   sR   



ô
ôzPDFTextDevice.render_stringr8   ÚposrR   rS   rT   rU   rV   rW   r]   c                 C   s¸   |\}}d}|D ]O}t |ttfƒr|||
 8 }d}qt |tƒrN| |¡D ](}|r,||7 }||  t |||f¡||||	|||¡7 }|dkrJ|rJ||7 }d}q$qt 	d|›d�¡ q||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   rD   r8   r^   rR   rS   rT   rU   rV   rW   r]   rE   r;   ÚxÚyÚneedcharspaceÚobjÚcidr   r   r   r\   •   s<   
ø
ñÿÿz&PDFTextDevice.render_string_horizontalc                 C   s¸   |\}}d}|D ]O}t |ttfƒr|||
 8 }d}qt |tƒrN| |¡D ](}|r,||7 }||  t |||f¡||||	|||¡7 }|dkrJ|rJ||7 }d}q$qt 	d|›d�¡ q||fS )NFTr_   z&Cannot render vertical string because r`   ra   rk   r   r   r   rZ   Â   s8   
ø
ñ
ÿz$PDFTextDevice.render_string_verticalrp   c	           	      C   r    ©Nr   r   )	r   r8   rR   rS   rT   rW   rp   rE   r;   r   r   r   rg   ï   s   zPDFTextDevice.render_char)rH   rI   rJ   rO   r	   rF   r   r   r
   rd   r\   rZ   rc   rg   r   r   r   r   rP   b   sª    þýüû
ú2þýüûúùø	÷
öõôó
ò-þýüûúùø	÷
öõôó
ò-þýüûúùø	÷
örP   c                
   @   sÄ   e Zd Z	d$dddededdfdd	„Zd
ddededdddf
dd„Zde	de
ddfdd„Zde	ddfdd„Zd%deded ddfdd„Zd&dd„Zd%deded ddfdd „Zd!eddfd"d#„ZdS )'ÚTagExtractorúutf-8r   r   ÚoutfpÚcodecr   Nc                 C   s(   t  | |¡ || _|| _d| _g | _d S rq   )r   r   rt   ru   ÚpagenoÚ_stack)r   r   rt   ru   r   r   r   r   þ   s
   
zTagExtractor.__init__rC   r   rD   rE   r;   r   c              
   C   s�   |j }|d us	J ‚d}|D ]0}t|tƒrt |¡}t|tƒsq| |¡}|D ]}	z| |	¡}
||
7 }W q& ty<   Y q&w q|  	t 
|¡¡ d S )NÚ )rR   rb   rL   r   Úmake_compat_bytesre   rf   Ú	to_unichrr   Ú_writeÚenc)r   rC   rD   rE   r;   rR   Útextro   Úcharsrp   Úcharr   r   r   rF   
  s$   




ÿüzTagExtractor.render_stringr2   r   c                 C   s2   d| j › dt |j¡› d|j› d�}|  |¡ d S )Nz
<page id="z" bbox="z
" rotate="z">)rv   r   Úbbox2strÚmediaboxÚrotater{   )r   r2   r   Úoutputr   r   r   r3   "  s
   ÿÿzTagExtractor.begin_pagec                 C   s   |   d¡ |  jd7  _d S )Nz</page>
é   )r{   rv   r4   r   r   r   r5   )  s   
zTagExtractor.end_pager,   r-   r   c                 C   sb   d}t |tƒrd dd„ t| ¡ ƒD ƒ¡}dt tt|j	ƒ¡› |› d�}|  
|¡ | j |¡ d S )Nrx   c                 S   s.   g | ]\}}d t  |¡› dt  |¡› d�‘qS )ú z="ú")r   r|   Úmake_compat_str)Ú.0ÚkÚvr   r   r   Ú
<listcomp>1  s    ÿÿz*TagExtractor.begin_tag.<locals>.<listcomp>ú<ú>)rb   ÚdictÚjoinÚsortedÚitemsr   r|   r   rL   r6   r{   rw   Úappend)r   r,   r-   ÚsÚout_sr   r   r   r/   -  s   

þÿ
zTagExtractor.begin_tagc                 C   sH   | j s
J t| jƒƒ‚| j  d¡}dt tt|jƒ¡› d�}|  |¡ d S )Néÿÿÿÿz</r�   )	rw   rL   rv   Úpopr   r|   r   r6   r{   )r   r,   r”   r   r   r   r0   :  s   zTagExtractor.end_tagc                 C   s   |   ||¡ | j d¡ d S )Nr•   )r/   rw   r–   r.   r   r   r   r1   @  s   zTagExtractor.do_tagr“   c                 C   s   | j  | | j¡¡ d S r   )rt   ÚwriteÚencoderu   )r   r“   r   r   r   r{   D  s   zTagExtractor._write)rs   r   rG   )rH   rI   rJ   r   rL   r   rO   r	   rF   r   r   r3   r5   r   r   r/   r0   r1   r{   r   r   r   r   rr   ý   s8    üþýü
ûþýüû
ú
rr   )*Ú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   rc   rd   re   rO   Ú	getLoggerrH   ri   r   rP   rr   r   r   r   r   Ú<module>   s$    
B 