§
    eÒ³g2  ã                   ó  — d dl Z d dlmZmZ d dlmZmZmZmZm	Z	m
Z
 d dlZd dlZd dlZddlmZ ddlmZmZmZmZmZmZ ddlmZmZmZmZ er
d dlZddlm Z   G d	„ d
¦  «        Z!e!j"        dz   Z#e!j$        dz   Z%dZ&dZ'e
e	e(e(e(f         e	e(e(e(e(f         e)f         Z*e
e	edf         ee         ef         Z+	 dde
eef         dee j,                 de(de
e(e-f         dee)         de.dej/        j/        fd„Z0 G d„ d¦  «        Z1dS )é    N)ÚBufferedReaderÚBytesIO)ÚTYPE_CHECKINGÚAnyÚListÚOptionalÚTupleÚUnioné   )Úutils)ÚT_bboxÚT_numÚT_objÚ
T_obj_listÚT_pointÚT_seq)ÚT_table_settingsÚTableÚTableFinderÚTableSettings)ÚPagec                   ó   — e Zd ZdZdZdZdZdS )ÚCOLORS)éÿ   r   r   )r   r   r   )r   r   r   )r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__ÚREDÚGREENÚBLUEÚTRANSPARENT© ó    úP/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pdfplumber/display.pyr   r      s"   € € € € € Ø
€CØ€EØ€DØ€K€K€Kr#   r   )é2   ©éÈ   éH   .FÚstreamÚpathÚpage_ixÚ
resolutionÚpasswordÚ	antialiasÚreturnc                 óF  — |r|}n|                       d¦  «         | }t          j        ||¬¦  «        }|                     |¦  «        }|                     |dz  | | | d¬¦  «                             ¦   «         }	|                     ¦   «          |	                     d¦  «        S )Nr   )r-   r(   T)ÚscaleÚno_smoothtextÚno_smoothpathÚno_smoothimageÚprefer_bgrxÚRGB)ÚseekÚ	pypdfium2ÚPdfDocumentÚget_pageÚrenderÚto_pilÚcloseÚconvert)
r)   r*   r+   r,   r-   r.   ÚsrcÚ
pdfium_docÚpdfium_pageÚimgs
             r$   Úget_page_imagerC   #   s¸   € ð ð Øˆˆð 	�Š�A‰ŒˆØˆåÔ& s°XÐ>Ñ>Ô>€JØ×%Ò% gÑ.Ô.€Kà&×-Ò-à˜2‰oØ#�mØ#�mØ$�}àð .ñ ô ÷ ‚f�h„hð ð ×ÒÑÔÐà�;Š;�uÑÔÐr#   c                   óÚ  — e Zd Zdeddfdddeej        j                 deee	f         de
de
f
d	„Zd
edeeeeef         fd„Zdedeeef         fd„ZdDd„Z	 	 	 	 dEdeeej        ef         dede
dedededdfd„ZdDd„Zeefdedededd fd„Zeefd eee         d!f         dededd fd"„Zeefd#e dededd fd$„Z!eefd%ee"e          d&f         dededd fd'„Z#eefd#e dededd fd(„Z$eefd%ee"e          d&f         dededd fd)„Z%e&eefd*eee'f         d+edededd f
d,„Z(e&eefd-ee"e         e)d!f         d+edededd f
d.„Z*d/e&efd0eee'f         d1ed+ededd f
d2„Z+d/e&efd3ee"e         e)d!f         d1ed+ededd f
d4„Z,e&ed5fd6e-d+edededd f
d7„Z.	 dFd8eee/e0e1f                  dd fd9„Z2ee&ee3j4        e3j5        fded+eded:e d;e dd fd<„Z6d=d>d?d? ed@¦  «        fefded+ededd fdA„Z7de8fdB„Z9dGdC„Z:dS )HÚ	PageImageNFÚpager   Úoriginalr,   r.   Úforce_mediaboxc                 ó  — || _         |j        r|n|j        | _        || _        |€At          |j        j        |j        j        |j	        dz
  |||j        j
        ¬¦  «        | _        n|| _        | j        j        d         |j        d         |j        d         z
  z  | _        |j        |j        k    r|j        n|r|j        n|j        | _        |j        |j        k    r“|                      |j        ¦  «        }|                      | j        ¦  «        }| j                             |d         |d         z
  |d         |d         z
  |d         |d         z
  |d         |d         z
  f¦  «        | _        |                      ¦   «          d S )Nr   )r)   r*   r+   r,   r.   r-   r   é   é   )rF   Úis_originalÚ	root_pageÚrootr,   rC   Úpdfr)   r*   Úpage_numberr-   rG   ÚsizeÚcropboxr1   ÚbboxÚmediaboxÚ_reproject_bboxÚcropÚreset)ÚselfrF   rG   r,   r.   rH   Ú	crop_dimsÚ	bbox_dimss           r$   Ú__init__zPageImage.__init__K   sy  € ð ˆŒ	Ø Ô,Ð@�D�D°$´.ˆŒ	Ø$ˆŒàÐÝ*Ø”x”Ø”X”]ØÔ(¨1Ñ,Ø%Ø#ØœÔ*ðñ ô ˆDŒMˆMð %ˆDŒMà”]Ô'¨Ô*¨d¬l¸1¬oÀÄÈQÄÑ.OÑPˆŒ
ð Œy˜DœMÒ)Ð)ð ŒIˆIà#1ÐC�$”-�-°t´|ð 	Œ	ð Œ9˜œÒ$Ð$Ø×,Ò,¨T¬\Ñ:Ô:ˆIØ×,Ò,¨T¬YÑ7Ô7ˆIØ œM×.Ò.à˜a”L 9¨Q¤<Ñ/Ø˜a”L 9¨Q¤<Ñ/Ø˜a”L 9¨Q¤<Ñ/Ø˜a”L 9¨Q¤<Ñ/ð	ñô ˆDŒMð 	�
Š
‰Œˆˆˆr#   rS   r/   c                 ó„   — |\  }}}}|                       ||f¦  «        \  }}|                       ||f¦  «        \  }}	||||	fS ©N)Ú
_reproject)
rX   rS   Úx0ÚtopÚx1ÚbottomÚ_x0Ú_topÚ_x1Ú_bottoms
             r$   rU   zPageImage._reproject_bbox   sQ   € Ø"ÑˆˆC��VØ—O’O R¨ IÑ.Ô.‰	ˆˆTØ—’¨¨F |Ñ4Ô4‰ˆˆWØ�T˜3 Ð(Ð(r#   Úcoordc                 ó¨   — |\  }}|| j         d         z
  | j        z  }|| j         d         z
  | j        z  }t          |¦  «        t          |¦  «        fS )z‘
        Given an (x0, top) tuple from the *root* coordinate system,
        return an (x0, top) tuple in the *image* coordinate system.
        r   r   )rS   r1   Úint)rX   rg   r_   r`   rc   rd   s         r$   r^   zPageImage._reproject…   sR   € ð
 ‰ˆˆCØ�D”I˜a”LÑ  D¤JÑ.ˆØ�d”i ”lÑ" d¤jÑ0ˆÝ�C‘”�#˜d™)œ)Ð$Ð$r#   c                 óö   — t           j                             d| j        j        ¦  «        | _        | j                             | j        ¦  «         t           j                             | j        d¦  «        | _	        | S )Nr6   ÚRGBA)
ÚPILÚImageÚnewrG   rQ   Ú	annotatedÚpasteÚ	ImageDrawÚDrawÚdraw©rX   s    r$   rW   zPageImage.reset�   sV   € ÝœŸš u¨d¬mÔ.@ÑAÔAˆŒØŒ×Ò˜Tœ]Ñ+Ô+Ð+Ý”M×&Ò& t¤~°vÑ>Ô>ˆŒ	Øˆr#   ÚPNGTé   é   ÚdestÚformatÚquantizeÚcolorsÚbitsÚkwargsc                 óÒ   — |r?| j                              |t          j        j        ¬¦  «                             d¦  «        }n| j         } |j        |f||| j        | j        fdœ|¤Ž d S )N)ÚmethodÚP)ry   r|   Údpi)ro   rz   rl   rm   Ú
FASTOCTREEr>   Úsaver,   )rX   rx   ry   rz   r{   r|   r}   Úouts           r$   rƒ   zPageImage.save•   s’   € ð ð 	!Ø”.×)Ò)¨&½¼Ô9MÐ)ÑNÔN×VÒVØñô ˆCˆCð ”.ˆCàˆŒØð	
àØØ” $¤/Ð2ð		
ð 	
ð
 ð	
ð 	
ð 	
ð 	
ð 	
r#   c                 óB   — |                       | j        | j        ¦  «        S r]   )Ú	__class__rF   rG   rt   s    r$   ÚcopyzPageImage.copy­   s   € Ø�~Š~˜dœi¨¬Ñ7Ô7Ð7r#   Úpoints_or_objÚstrokeÚstroke_widthc                 óZ  — t          |t          t          f¦  «        r|}nNt          |t          ¦  «        rd|v rd„ |d         D ¦   «         }n"|}|d         |d         f|d         |d         ff}| j                             t          t          | j        |¦  «        ¦  «        ||¬¦  «         | S )NÚptsc                 ó   — g | ]	\  }}||f‘Œ
S r"   r"   )Ú.0ÚxÚys      r$   ú
<listcomp>z'PageImage.draw_line.<locals>.<listcomp>»   s    € Ð>Ð>Ð>¡  A�q˜!�fÐ>Ð>Ð>r#   r_   r`   ra   rb   ©ÚfillÚwidth)Ú
isinstanceÚtupleÚlistÚdictrs   ÚlineÚmapr^   )rX   rˆ   r‰   rŠ   ÚpointsÚobjs         r$   Ú	draw_linezPageImage.draw_line°   sÃ   € õ �m¥e­T ]Ñ3Ô3ð 	KØ"ˆFˆFå˜¥tÑ,Ô,ð 	K°¸-Ð1GÐ1GØ>Ð>¨°uÔ)=Ð>Ñ>Ô>ˆFˆFð  ˆCØ˜4”y # e¤*Ð-°°D´	¸3¸x¼=Ð/IÐJˆFàŒ	�ŠÝ•�T”_ fÑ-Ô-Ñ.Ô.°VÀ<ð 	ñ 	
ô 	
ð 	
ð ˆr#   Úlist_of_lineszpd.DataFramec                 ód   — t          j        |¦  «        D ]}|                      |||¬¦  «         Œ| S ©N©r‰   rŠ   )r   Úto_listr�   )rX   rž   r‰   rŠ   r�   s        r$   Ú
draw_lineszPageImage.draw_linesÇ   s?   € õ ”˜}Ñ-Ô-ð 	Hð 	HˆAØ�NŠN˜1 V¸,ˆNÑGÔGÐGÐGØˆr#   Úlocationc                 óž   — || j         d         || j         d         f}| j                             |                      |¦  «        ||¬¦  «         | S )Nr   rK   r’   ©rS   rs   r™   rU   ©rX   r¤   r‰   rŠ   r›   s        r$   Ú
draw_vlinezPageImage.draw_vlineÑ   sK   € ð ˜DœI aœL¨(°D´I¸a´LÐAˆØŒ	�Š�t×+Ò+¨FÑ3Ô3¸&ÈˆÑUÔUÐUØˆr#   Ú	locationszpd.Series[float]c                 óZ   — t          |¦  «        D ]}|                      |||¬¦  «         Œ| S r    )r—   r¨   ©rX   r©   r‰   rŠ   r�   s        r$   Údraw_vlineszPageImage.draw_vlinesÛ   ó;   € õ �i‘”ð 	Ið 	IˆAØ�OŠO˜A f¸<ˆOÑHÔHÐHÐHØˆr#   c                 óž   — | j         d         || j         d         |f}| j                             |                      |¦  «        ||¬¦  «         | S )Nr   rJ   r’   r¦   r§   s        r$   Ú
draw_hlinezPageImage.draw_hlineå   sK   € ð ”)˜A”, ¨$¬)°A¬,¸ÐAˆØŒ	�Š�t×+Ò+¨FÑ3Ô3¸&ÈˆÑUÔUÐUØˆr#   c                 óZ   — t          |¦  «        D ]}|                      |||¬¦  «         Œ| S r    )r—   r¯   r«   s        r$   Údraw_hlineszPageImage.draw_hlinesï   r­   r#   Úbbox_or_objr“   c                 óZ  — t          |t          t          f¦  «        r|}n |}|d         |d         |d         |d         f}|\  }}}	}
|dz  }t          ||z   ||	z   dz  ¦  «        }t          ||z   ||
z   dz  ¦  «        }t	          |	|z
  ||	z   dz  ¦  «        }	t	          |
|z
  ||
z   dz  ¦  «        }
|                      |||	|
f¦  «        }| j                             ||t          j	        ¦  «         |dk    r6||f|	|ff||
f|	|
ff||f||
ff|	|f|	|
ffg}|  
                    |||¬¦  «         | S )Nr_   r`   ra   rb   rJ   r   r¡   )r•   r–   r—   ÚminÚmaxrU   rs   Ú	rectangler   r!   r£   )rX   r²   r“   r‰   rŠ   rS   rœ   r_   r`   ra   rb   ÚhalfÚ	fill_bboxÚsegmentss                 r$   Ú	draw_rectzPageImage.draw_rectù   su  € õ �k¥E­4 =Ñ1Ô1ð 	EØˆDˆDàˆCØ˜”I˜s 5œz¨3¨t¬9°c¸(´mÐDˆDà"ÑˆˆC��VØ˜aÑˆÝ��d‘˜R "™W¨™MÑ*Ô*ˆÝ�#˜‘*˜s V™|¨qÑ0Ñ1Ô1ˆÝ��d‘˜R "™W¨™MÑ*Ô*ˆÝ�V˜d‘] S¨6¡\°QÑ$6Ñ7Ô7ˆà×(Ò(¨"¨c°2°vÐ)>Ñ?Ô?ˆ	ØŒ	×Ò˜I t­VÔ-?Ñ@Ô@Ð@à˜!ÒÐà�c�˜R ˜IÐ&Ø�f�  F˜|Ð,Ø�c�˜R ˜LÐ)Ø�c�˜R ˜LÐ)ð	ˆHð �OŠO˜H¨VÀ,ˆOÑOÔOÐOØˆr#   Úlist_of_rectsc                 óf   — t          j        |¦  «        D ]}|                      ||||¬¦  «         Œ| S )N©r“   r‰   rŠ   )r   r¢   rº   )rX   r»   r“   r‰   rŠ   r�   s         r$   Ú
draw_rectszPageImage.draw_rects  sA   € õ ”˜}Ñ-Ô-ð 	Sð 	SˆAØ�NŠN˜1 4°À\ˆNÑRÔRÐRÐRØˆr#   é   Úcenter_or_objÚradiusc                 ó  — t          |t          ¦  «        r|}n*|}|d         |d         z   dz  |d         |d         z   dz  f}|\  }}||z
  ||z
  ||z   ||z   f}	| j                             |                      |	¦  «        ||¦  «         | S )Nr_   ra   rJ   r`   rb   )r•   r–   rs   ÚellipserU   )
rX   rÀ   rÁ   r“   r‰   Úcenterrœ   ÚcxÚcyrS   s
             r$   Údraw_circlezPageImage.draw_circle%  s¦   € õ �m¥UÑ+Ô+ð 	UØ"ˆFˆFàˆCØ˜4”y 3 t¤9Ñ,°Ñ1°C¸´JÀÀXÄÑ4NÐRSÑ3SÐTˆFØ‰ˆˆBØ�V‘˜R &™[¨"¨v©+°r¸F±{ÐCˆØŒ	×Ò˜$×.Ò.¨tÑ4Ô4°d¸FÑCÔCÐCØˆr#   Úlist_of_circlesc                 óf   — t          j        |¦  «        D ]}|                      ||||¬¦  «         Œ| S )N)rÁ   r“   r‰   )r   r¢   rÇ   )rX   rÈ   rÁ   r“   r‰   r�   s         r$   Údraw_circleszPageImage.draw_circles6  sD   € õ ”˜Ñ/Ô/ð 	Ið 	IˆAØ×Ò˜Q v°DÀÐÑHÔHÐHÐHØˆr#   r   Útablec                 óB   — |                       |j        |||¬¦  «         | S )z+
        Outline all found tables.
        r½   )r¾   Úcells)rX   rË   r“   r‰   rŠ   s        r$   Údebug_tablezPageImage.debug_tableA  s1   € ð 	�ŠØŒK˜d¨6Àð 	ñ 	
ô 	
ð 	
ð ˆr#   Útable_settingsc                 óä  — t          |t          ¦  «        r|}nH|�t          |t          t          f¦  «        r| j                             |¦  «        }nt          d¦  «        ‚|j        D ]}|                      |¦  «         Œ|  	                    |j
        d¬¦  «         |                      t          |j                             ¦   «         ¦  «        t          j        t          j        dz   d¬¦  «         | S )NzGArgument must be instance of TableFinderor a TableFinder settings dict.r   )rŠ   r&   rK   )r“   r‰   rÁ   )r•   r   r   r˜   rF   Údebug_tablefinderÚ
ValueErrorÚtablesrÎ   r£   ÚedgesrÊ   r—   ÚintersectionsÚkeysr   r!   r    )rX   rÏ   ÚfinderrË   s       r$   rÑ   zPageImage.debug_tablefinderP  sÿ   € õ �n¥kÑ2Ô2ð 
	Ø#ˆFˆFØÐ#¥zØ�]­DÐ1ñ(
ô (
Ð#ð ”Y×0Ò0°Ñ@Ô@ˆFˆFåð2ñô ð ð
 ”]ð 	$ð 	$ˆEØ×Ò˜UÑ#Ô#Ð#Ð#à�Š˜œ°1ˆÑ5Ô5Ð5à×ÒÝ�Ô%×*Ò*Ñ,Ô,Ñ-Ô-ÝÔ#Ý”; Ñ'Øð	 	ñ 	
ô 	
ð 	
ð ˆr#   Úx_toleranceÚy_tolerancec                 óp   — | j                              ||¬¦  «        }|                      ||||¬¦  «         | S )N)rØ   rÙ   ©r‰   r“   rŠ   )rF   Úextract_wordsr¾   )rX   r‰   r“   rŠ   rØ   rÙ   Úwordss          r$   Úoutline_wordszPageImage.outline_wordso  sF   € ð ”	×'Ò'Ø#°ð (ñ 
ô 
ˆð 	�Š˜ f°4ÀlˆÑSÔSÐSØˆr#   )r   r   r   r   r   r   g     àO@c                 óL   — |                       | j        j        |||¬¦  «         | S )NrÛ   )r¾   rF   Úchars)rX   r‰   r“   rŠ   s       r$   Úoutline_charszPageImage.outline_chars~  s3   € ð 	�ŠØŒIŒO F°ÀLð 	ñ 	
ô 	
ð 	
ð ˆr#   c                 ór   — t          ¦   «         }|                      |d¦  «         |                     ¦   «         S )Nru   )r   rƒ   Úgetvalue)rX   Úbs     r$   Ú
_repr_png_zPageImage._repr_png_Š  s-   € Ý‰IŒIˆØ�	Š	�!�UÑÔÐØ�zŠz‰|Œ|Ðr#   c                 ó8   — | j                              ¦   «          d S r]   )ro   Úshowrt   s    r$   rç   zPageImage.show�  s   € ØŒ×ÒÑÔÐÐÐr#   )r/   rE   )ru   Trv   rw   r]   )r/   N);r   r   r   ÚDEFAULT_RESOLUTIONr   rl   rm   r
   ri   ÚfloatÚboolr[   r   r	   rU   r   r^   rW   ÚstrÚpathlibÚPathr   r   rƒ   r‡   ÚDEFAULT_STROKEÚDEFAULT_STROKE_WIDTHÚT_contains_pointsÚT_colorr�   r   r£   r   r¨   r   r¬   r¯   r±   ÚDEFAULT_FILLr   rº   r   r¾   rÇ   rÊ   r   rÎ   r   r   r   rÑ   r   ÚDEFAULT_X_TOLERANCEÚDEFAULT_Y_TOLERANCErÞ   rá   Úbytesrå   rç   r"   r#   r$   rE   rE   J   sb  € € € € € ð /3Ø(:ØØ$ð2ð 2àð2ð ˜3œ9œ?Ô+ð2ð ˜#˜u˜*Ô%ð	2ð
 ð2ð ð2ð 2ð 2ð 2ðh) Fð )¨u°S¸#¸sÀCÐ5GÔ/Hð )ð )ð )ð )ð% ð %¨E°#°s°(¬Oð %ð %ð %ð %ðð ð ð ð ØØØð
ð 
à�C˜œ wÐ.Ô/ð
ð ð
ð ð	
ð
 ð
ð ð
ð ð
ð 
ð
ð 
ð 
ð 
ð08ð 8ð 8ð 8ð )Ø0ð	ð à(ðð ðð ð	ð
 
ðð ð ð ð4 )Ø0ð	ð à˜UÐ#4Ô5°~ÐEÔFðð ðð ð	ð
 
ðð ð ð ð )Ø0ð	ð àðð ðð ð	ð
 
ðð ð ð ð )Ø0ð	ð à˜˜eœÐ&8Ð8Ô9ðð ðð ð	ð
 
ðð ð ð ð )Ø0ð	ð àðð ðð ð	ð
 
ðð ð ð ð )Ø0ð	ð à˜˜eœÐ&8Ð8Ô9ðð ðð ð	ð
 
ðð ð ð ð %Ø(Ø0ðð à˜6 5˜=Ô)ðð ðð ð	ð
 ðð 
ðð ð ð ðH %Ø(Ø0ð	ð 	à˜T &œ\¨:°~ÐEÔFð	ð ð	ð ð		ð
 ð	ð 
ð	ð 	ð 	ð 	ð Ø$Ø(ðð à˜W e˜^Ô,ðð ðð ð	ð
 ðð 
ðð ð ð ð( Ø$Ø(ð	ð 	à˜t Gœ}¨j¸.ÐHÔIð	ð ð	ð ð		ð
 ð	ð 
ð	ð 	ð 	ð 	ð %Ø(Øðð àðð ðð ð	ð
 ðð 
ðð ð ð ð& ð	ð à Ø�+˜}Ð.>Ð>Ô?ô
ðð
 
ðð ð ð ðB )Ø$Ø0Ø"Ô6Ø"Ô6ðð àðð ðð ð	ð
 ðð ðð 
ðð ð ð ð" +Ø˜a  C C¨¡L¤LÐ1Ø0ð	
ð 
àð
ð ð
ð ð	
ð
 
ð
ð 
ð 
ð 
ð˜Eð ð ð ð ð
ð ð ð ð ð r#   rE   )F)2rì   Úior   r   Útypingr   r   r   r   r	   r
   Ú	PIL.Imagerl   ÚPIL.ImageDrawr8   Ú r   Ú_typingr   r   r   r   r   r   rË   r   r   r   r   ÚpandasÚpdrF   r   r   r    rò   r   rî   rï   rè   ri   rë   rñ   rð   rí   ré   rê   rm   rC   rE   r"   r#   r$   ú<module>rþ      s\  ðØ €€€Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cà Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fàð ØÐÐÐàÐÐÐÐÐðð ð ð ð ñ ô ð ð Œ{˜UÑ"€Ø”˜fÑ$€ØÐ ØÐ à
��c˜3 �mÔ$ e¨C°°c¸3Ð,>Ô&?ÀÐDÔ
E€Ø˜% ¨ Ô-¨t°G¬}¸eÐCÔDÐ ð ð$ð $Ø�. 'Ð)Ô*ð$à
�7”<Ô
 ð$ð ð$ð �c˜5�jÔ!ð	$ð
 �sŒmð$ð ð$ð 	„Y„_ð$ð $ð $ð $ðNFð Fð Fð Fð Fñ Fô Fð Fð Fð Fr#   