Ë
    vl�j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 ddlmZ er
d dlZ dd	l!m"Z"  G d
„ d«      Z#e#jH                  dz   Z%e#jL                  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e0dejb                  jb                  fd„Z2 G d„ d«      Z3y)é    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)ÚMalformedPDFException)ÚPagec                   ó   — e Zd ZdZdZdZdZy)ÚCOLORS)éÿ   r   r   )r   r   r   )r   r   r   )r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__ÚREDÚGREENÚBLUEÚTRANSPARENT© ó    úH/var/www/html/pp/venv/lib/python3.12/site-packages/pdfplumber/display.pyr   r      s   „ Ø
€CØ€EØ€DØ�Kr$   r   )é2   ©éÈ   éH   .ÚstreamÚpathÚpage_ixÚ
resolutionÚpasswordÚ	antialiasÚreturnc                 óf  — |r|}n| j                  d«       | }	 t        j                  ||¬«      }|j                  |«      }	|	j                  |dz  | | | d¬«      j                  «       }
|j                  «        |
j                  d«      S # t        j                  $ r}t	        |«      ‚d }~ww xY w)Nr   )r.   r)   T)ÚscaleÚno_smoothtextÚno_smoothpathÚno_smoothimageÚprefer_bgrxÚRGB)
ÚseekÚ	pypdfium2ÚPdfDocumentÚPdfiumErrorr   Úget_pageÚrenderÚto_pilÚcloseÚconvert)r*   r+   r,   r-   r.   r/   ÚsrcÚ
pdfium_docÚeÚpdfium_pageÚimgs              r%   Úget_page_imagerF   $   sÁ   € ñ Ø‰ð 	�‰�AŒØˆð'Ü×*Ñ*¨3¸ÔBˆ
ð ×%Ñ% gÓ.€Kà&×-Ñ-à˜2‰oØ#�mØ#�mØ$�}àð .ó ÷ �fƒhð ð ×ÑÔà�;‰;�uÓÐøô! × Ñ ò 'Ü# AÓ&Ð&ûð'ús   šB ÂB0Â B+Â+B0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d@d„Z	 	 	 	 dAdeeej(                  ef   dede
dedededdfd„Zd@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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d,eee'f   d-ed'ededd f
d.„Z+d+e&efd/ee"e   e)df   d-ed'ededd f
d0„Z,e&ed1fd2e-d'edededd f
d3„Z.	 dBd4eee/e0e1f      dd fd5„Z2ee&ee3jh                  e3jj                  fded'eded6e d7e dd fd8„Z6d9d:d;d; ed<«      fefded'ededd fd=„Z7de8fd>„Z9dCd?„Z:y)DÚ	PageImageNFÚpager   Úoriginalr-   r/   Úforce_mediaboxc                 ó‚  — || _         |j                  r|n|j                  | _        || _        |€`t        |j                  j                  |j                  j                  |j                  dz
  |||j                  j                  ¬«      | _        n|| _        | j                  j                  d   |j                  d   |j                  d   z
  z  | _        |j                  |j                   k7  r|j                  n|r|j                   n|j                  | _        |j                  |j                  k7  r~| j#                  |j                  «      }| j#                  | j                  «      }| j                  j%                  |d   |d   z
  |d   |d   z
  |d   |d   z
  |d   |d   z
  f«      | _        | j'                  «        y )Nr   )r*   r+   r,   r-   r/   r.   r   é   é   )rI   Úis_originalÚ	root_pageÚrootr-   rF   Úpdfr*   r+   Úpage_numberr.   rJ   ÚsizeÚcropboxr2   ÚbboxÚmediaboxÚ_reproject_bboxÚcropÚreset)ÚselfrI   rJ   r-   r/   rK   Ú	crop_dimsÚ	bbox_dimss           r%   Ú__init__zPageImage.__init__N   sz  € ð ˆŒ	Ø ×,Ò,‘D°$·.±.ˆŒ	Ø$ˆŒàÐÜ*Ø—x‘x—‘Ø—X‘X—]‘]Ø×(Ñ(¨1Ñ,Ø%Ø#ØŸ™×*Ñ*ôˆD�Mð %ˆDŒMà—]‘]×'Ñ'¨Ñ*¨d¯l©l¸1©oÀÇÁÈQÁÑ.OÑPˆŒ
ð �y‰y˜DŸM™MÒ)ð �IŠIá#1�$—-’-°t·|±|ð 	Œ	ð �9‰9˜Ÿ™Ò$Ø×,Ñ,¨T¯\©\Ó:ˆIØ×,Ñ,¨T¯Y©YÓ7ˆIØ ŸM™M×.Ñ.à˜a‘L 9¨Q¡<Ñ/Ø˜a‘L 9¨Q¡<Ñ/Ø˜a‘L 9¨Q¡<Ñ/Ø˜a‘L 9¨Q¡<Ñ/ð	óˆDŒMð 	�
‰
�r$   rV   r0   c                 ót   — |\  }}}}| j                  ||f«      \  }}| j                  ||f«      \  }}	||||	fS ©N)Ú
_reproject)
r[   rV   Úx0ÚtopÚx1ÚbottomÚ_x0Ú_topÚ_x1Ú_bottoms
             r%   rX   zPageImage._reproject_bbox‚   sK   € Ø"ÑˆˆC��VØ—O‘O R¨ IÓ.‰	ˆˆTØ—‘¨¨F |Ó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   )rV   r2   Úint)r[   rj   rb   rc   rf   rg   s         r%   ra   zPageImage._reprojectˆ   sV   € ð
 ‰ˆˆCØ�D—I‘I˜a‘LÑ  D§J¡JÑ.ˆØ�d—i‘i ‘lÑ" d§j¡jÑ0ˆÜ�C“œ#˜d›)Ð$Ð$r$   c                 ó   — t         j                  j                  d| j                  j                  «      | _        | j
                  j                  | j                  «       t         j                  j                  | j
                  d«      | _	        | S )Nr7   ÚRGBA)
ÚPILÚImageÚnewrJ   rT   Ú	annotatedÚpasteÚ	ImageDrawÚDrawÚdraw©r[   s    r%   rZ   zPageImage.reset’   sY   € ÜŸ™Ÿ™ u¨d¯m©m×.@Ñ.@ÓAˆŒØ�‰×Ñ˜TŸ]™]Ô+Ü—M‘M×&Ñ& t§~¡~°vÓ>ˆŒ	Øˆr$   ÚdestÚformatÚquantizeÚcolorsÚbitsÚkwargsc                 ó  — |rE| j                   j                  |t        j                  j                  ¬«      j                  d«      }n| j                   } |j                  |f||| j                  | j                  fdœ|¤Ž y )N)ÚmethodÚP)ry   r|   Údpi)rr   rz   ro   rp   Ú
FASTOCTREEr@   Úsaver-   )r[   rx   ry   rz   r{   r|   r}   Úouts           r%   rƒ   zPageImage.save˜   sy   € ñ Ø—.‘.×)Ñ)¨&¼¿¹×9MÑ9MÐ)ÓN×VÑVØó‰Cð —.‘.ˆCàˆ�‰Øð	
àØØ—‘ $§/¡/Ð2ñ		
ð
 ó	
r$   c                 óN   — | j                  | j                  | j                  «      S r`   )Ú	__class__rI   rJ   rw   s    r%   ÚcopyzPageImage.copy°   s   € Ø�~‰~˜dŸi™i¨¯©Ó7Ð7r$   Úpoints_or_objÚstrokeÚstroke_widthc                 óB  — t        |t        t        f«      r|}nDt        |t        «      rd|v r|d   D ��cg c]	  \  }}||f‘Œ }}}n|}|d   |d   f|d   |d   ff}| j                  j                  t        t        | j                  |«      «      ||¬«       | S c c}}w )NÚptsrb   rc   rd   re   ©ÚfillÚwidth)Ú
isinstanceÚtupleÚlistÚdictrv   ÚlineÚmapra   )r[   rˆ   r‰   rŠ   ÚpointsÚxÚyÚobjs           r%   Ú	draw_linezPageImage.draw_line³   s«   € ô �m¤e¬T ]Ô3Ø"‰Fä˜¤tÔ,°¸-Ñ1GØ)6°uÑ)=×>¡  A�q˜!’fÐ>ˆFÒ>ð  ˆCØ˜4‘y # e¡*Ð-°°D±	¸3¸x¹=Ð/IÐJˆFà�	‰	�‰Ü”�T—_‘_ fÓ-Ó.°VÀ<ð 	ô 	
ð ˆùó ?s   ¶BÚlist_of_lineszpd.DataFramec                 ób   — t        j                  |«      D ]  }| j                  |||¬«       Œ | S ©N©r‰   rŠ   )r   Úto_listrš   )r[   r›   r‰   rŠ   r—   s        r%   Ú
draw_lineszPageImage.draw_linesÊ   s5   € ô —‘˜}Ó-ò 	HˆAØ�N‰N˜1 V¸,ˆNÕGð	Hàˆr$   Úlocationc                 ó    — || j                   d   || j                   d   f}| j                  j                  | j                  |«      ||¬«       | S )Nr   rN   r�   ©rV   rv   r”   rX   ©r[   r¡   r‰   rŠ   r–   s        r%   Ú
draw_vlinezPageImage.draw_vlineÔ   sH   € ð ˜DŸI™I a™L¨(°D·I±I¸a±LÐAˆØ�	‰	�‰�t×+Ñ+¨FÓ3¸&ÈˆÔUØˆr$   Ú	locationszpd.Series[float]c                 óN   — t        |«      D ]  }| j                  |||¬«       Œ | S r�   )r’   r¥   ©r[   r¦   r‰   rŠ   r—   s        r%   Údraw_vlineszPageImage.draw_vlinesÞ   ó0   € ô �i“ò 	IˆAØ�O‰O˜A f¸<ˆOÕHð	Iàˆr$   c                 ó    — | j                   d   || j                   d   |f}| j                  j                  | j                  |«      ||¬«       | S )Nr   rM   r�   r£   r¤   s        r%   Ú
draw_hlinezPageImage.draw_hlineè   sH   € ð —)‘)˜A‘, ¨$¯)©)°A©,¸ÐAˆØ�	‰	�‰�t×+Ñ+¨FÓ3¸&ÈˆÔUØˆr$   c                 óN   — t        |«      D ]  }| j                  |||¬«       Œ | S r�   )r’   r¬   r¨   s        r%   Údraw_hlineszPageImage.draw_hlinesò   rª   r$   Úbbox_or_objrŽ   c                 ó  — 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  «      }
| j                  |||	|
f«      }| j                  j                  ||t        j                  «       |dkD  r2||f|	|ff||
f|	|
ff||f||
ff|	|f|	|
ffg}| j                  |||¬«       | S )Nrb   rc   rd   re   rM   r   rž   )r�   r‘   r’   ÚminÚmaxrX   rv   Ú	rectangler   r"   r    )r[   r¯   rŽ   r‰   rŠ   rV   r™   rb   rc   rd   re   ÚhalfÚ	fill_bboxÚsegmentss                 r%   Ú	draw_rectzPageImage.draw_rectü   sQ  € ô �k¤E¬4 =Ô1Ø‰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ˆÜ��d‘˜R "™W¨™MÓ*ˆÜ�V˜d‘] S¨6¡\°QÑ$6Ó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Øˆr$   Úlist_of_rectsc                 ód   — t        j                  |«      D ]  }| j                  ||||¬«       Œ | S )N©rŽ   r‰   rŠ   )r   rŸ   r·   )r[   r¸   rŽ   r‰   rŠ   r—   s         r%   Ú
draw_rectszPageImage.draw_rects  s7   € ô —‘˜}Ó-ò 	SˆAØ�N‰N˜1 4°À\ˆNÕRð	Sàˆ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                  j                  | j	                  |	«      ||«       | S )Nrb   rd   rM   rc   re   )r�   r‘   rv   ÚellipserX   )
r[   r½   r¾   rŽ   r‰   Úcenterr™   ÚcxÚcyrV   s
             r%   Údraw_circlezPageImage.draw_circle(  s”   € ô �m¤UÔ+Ø"‰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°d¸FÔCØˆr$   Úlist_of_circlesc                 ód   — t        j                  |«      D ]  }| j                  ||||¬«       Œ | S )N)r¾   rŽ   r‰   )r   rŸ   rÄ   )r[   rÅ   r¾   rŽ   r‰   r—   s         r%   Údraw_circleszPageImage.draw_circles9  s:   € ô —‘˜Ó/ò 	IˆAØ×Ñ˜Q v°DÀÐÕHð	Iàˆr$   r   Útablec                 óD   — | j                  |j                  |||¬«       | S )z+
        Outline all found tables.
        rº   )r»   Úcells)r[   rÈ   rŽ   r‰   rŠ   s        r%   Údebug_tablezPageImage.debug_tableD  s)   € ð 	�‰Ø�K‰K˜d¨6Àð 	ô 	
ð ˆr$   Útable_settingsc                 óÒ  — t        |t        «      r|}n?|�t        |t        t        f«      r| j                  j                  |«      }nt        d«      ‚|j                  D ]  }| j                  |«       Œ | j                  |j                  d¬«       | j                  t        |j                  j                  «       «      t        j                   t        j"                  dz   d¬«       | S )NzGArgument must be instance of TableFinderor a TableFinder settings dict.r   )rŠ   r'   rN   )rŽ   r‰   r¾   )r�   r   r   r“   rI   Údebug_tablefinderÚ
ValueErrorÚtablesrË   r    ÚedgesrÇ   r’   ÚintersectionsÚkeysr   r"   r!   )r[   rÌ   ÚfinderrÈ   s       r%   rÎ   zPageImage.debug_tablefinderS  sÔ   € ô �n¤kÔ2Ø#‰FØÐ#¤zØœ]¬DÐ1ô(
ð —Y‘Y×0Ñ0°Ó@‰Fäð2óð ð
 —]‘]ò 	$ˆEØ×Ñ˜UÕ#ð	$ð 	�‰˜Ÿ™°1ˆÔ5à×ÑÜ�×%Ñ%×*Ñ*Ó,Ó-Ü×#Ñ#Ü—;‘; Ñ'Øð	 	ô 	
ð ˆr$   Úx_toleranceÚy_tolerancec                 ój   — | j                   j                  ||¬«      }| j                  ||||¬«       | S )N)rÕ   rÖ   ©r‰   rŽ   rŠ   )rI   Úextract_wordsr»   )r[   r‰   rŽ   rŠ   rÕ   rÖ   Úwordss          r%   Úoutline_wordszPageImage.outline_wordsr  s=   € ð —	‘	×'Ñ'Ø#°ð (ó 
ˆð 	�‰˜ f°4ÀlˆÔSØˆr$   )r   r   r   r   r   r   g     àO@c                 óX   — | j                  | j                  j                  |||¬«       | S )NrØ   )r»   rI   Úchars)r[   r‰   rŽ   rŠ   s       r%   Úoutline_charszPageImage.outline_chars�  s-   € ð 	�‰Ø�I‰I�O‰O F°ÀLð 	ô 	
ð ˆr$   c                 óZ   — t        «       }| j                  |d«       |j                  «       S )NÚPNG)r   rƒ   Úgetvalue)r[   Úbs     r%   Ú
_repr_png_zPageImage._repr_png_�  s#   € Ü‹IˆØ�	‰	�!�UÔØ�z‰z‹|Ðr$   c                 ó8   — | j                   j                  «        y r`   )rr   Úshowrw   s    r%   rå   zPageImage.show’  s   € Ø�‰×ÑÕr$   )r0   rH   )rà   Té   é   r`   )r0   N);r   r   r   ÚDEFAULT_RESOLUTIONr   ro   rp   r
   rl   ÚfloatÚboolr^   r   r	   rX   r   ra   rZ   Ú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%   rH   rH   M   s¾  „ ð /3Ø(:ØØ$ñ2àð2ð ˜3Ÿ9™9Ÿ?™?Ñ+ð2ð ˜#˜u˜*Ñ%ð	2ð
 ð2ð ó2ðh) Fð )¨u°S¸#¸sÀCÐ5GÑ/Hó )ð% ð %¨E°#°s°(©Oó %óð ØØØñ
à�C˜Ÿ™ wÐ.Ñ/ð
ð ð
ð ð	
ð
 ð
ð ð
ð ð
ð 
ó
ó0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Ø"×6Ñ6ñàðð ðð ð	ð
 ðð ðð 
óð" +Ø˜a ¡C¨£LÐ1Ø0ñ	
àð
ð ð
ð ð	
ð
 
ó
ð˜Eó ô
r$   rH   )F)4rì   Úior   r   Útypingr   r   r   r   r	   r
   Ú	PIL.Imagero   ÚPIL.ImageDrawr9   Ú r   Ú_typingr   r   r   r   r   r   rÈ   r   r   r   r   Úutils.exceptionsr   ÚpandasÚpdrI   r   r   r!   rò   r   rî   rï   rè   rl   rë   rñ   rð   rí   ré   rê   rp   rF   rH   r#   r$   r%   ú<module>rÿ      s3  ðÛ ß &ß C× Cã Û Û å ß E× Eß FÓ FÝ 3áÛå÷ñ ð �{‰{˜UÑ"€Ø—‘˜fÑ$€ØÐ ØÐ à
��c˜3 �mÑ$ e¨C°°c¸3Ð,>Ñ&?ÀÐDÑ
E€Ø˜% ¨ Ñ-¨t°G©}¸eÐCÑDÐ ð ñ&Ø�. 'Ð)Ñ*ð&à
�7—<‘<Ñ
 ð&ð ð&ð �c˜5�jÑ!ð	&ð
 �s‰mð&ð ð&ð 	‡Y�Y‡_�_ó&÷RFò Fr$   