
    SAi2                        S SK r S SKJrJr  S SKJrJrJrJrJ	r	J
r
  S SKrS SKrS SKrSSKJr  SSKJrJrJrJrJrJr  SSKJrJrJrJr  SSKJr  \(       a
  S SKr SS	K!J"r"   " S
 S5      r#\#RH                  S-   r%\#RL                  S-   r'Sr(Sr)\
\	\*\*\*4   \	\*\*\*\*4   \+4   r,\
\	\S4   \\   \4   r- SS\
\\4   S\\ R\                     S\*S\
\*\/4   S\\+   S\0S\Rb                  Rb                  4S jjr2 " S S5      r3g)    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                   $    \ rS rSrSrSrSrSrSrg)COLORS   )   r   r   )r   r   r   )r   r   r   )r   r   r   r    N)	__name__
__module____qualname____firstlineno__REDGREENBLUETRANSPARENT__static_attributes__r       N/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pdfplumber/display.pyr   r      s    
CEDKr'   r   )2      H   .streampathpage_ix
resolutionpassword	antialiasreturnc                 ~   U(       a  UnOU R                  S5        U n [        R                  " XdS9nUR                  U5      n	U	R                  US-  U(       + U(       + U(       + SS9R                  5       n
UR                  5         U
R                  S5      $ ! [        R                   a  n[	        U5      eS nAff = f)Nr   )r1   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/   r0   r1   r2   src
pdfium_docepdfium_pageimgs              r(   get_page_imagerI   $   s      	A'**3B
 %%g.K&--2o#m#m$} .  fh  ;;u!    '#A&&'s   B B<,B77B<c                      \ rS rSrS\SS4SSS\\R                  R                     S\\	\
4   S\S	\4
S
 jjrS\S\\	\	\	\	4   4S jrS\S\\	\	4   4S jrSBS jr    SCS\\\R*                  \4   S\S\S\	S\	S\SS4S jjrSBS jr\\4S\S\S\	SS 4S jjr\\4S\\\   S4   S\S\	SS 4S jjr \\4S \!S\S\	SS 4S! jjr"\\4S"\\#\!   S#4   S\S\	SS 4S$ jjr$\\4S \!S\S\	SS 4S% jjr%\\4S"\\#\!   S#4   S\S\	SS 4S& jjr&\'\\4S'\\\(4   S(\S\S\	SS 4
S) jjr)\'\\4S*\\#\   \*S4   S(\S\S\	SS 4
S+ jjr+S,\'\4S-\\\(4   S.\	S(\S\SS 4
S/ jjr,S,\'\4S0\\#\   \*S4   S.\	S(\S\SS 4
S1 jjr-\'\S24S3\.S(\S\S\	SS 4
S4 jjr/ SDS5\\\0\1\24      SS 4S6 jjr3\\'\\4Rj                  \4Rl                  4S\S(\S\	S7\!S8\!SS 4S9 jjr7S:S;S<S<\	" S=5      4\4S\S(\S\	SS 4S> jjr8S\94S? jr:SES@ jr;SAr<g)F	PageImageM   NFpager   originalr0   r2   force_mediaboxc           	         Xl         UR                  (       a  UOUR                  U l        X0l        Uc]  [        UR                  R                  UR                  R                  UR                  S-
  UUUR                  R                  S9U l        OX l        U R                  R                  S   UR                  S   UR                  S   -
  -  U l        UR                  UR                   :w  a  UR                  OU(       a  UR                   OUR                  U l        UR                  UR                  :w  a~  U R#                  UR                  5      nU R#                  U R                  5      nU R                  R%                  US   US   -
  US   US   -
  US   US   -
  US   US   -
  45      U l        U R'                  5         g )Nr   )r-   r.   r/   r0   r2   r1   r         )rM   is_original	root_pagerootr0   rI   pdfr-   r.   page_numberr1   rN   sizecropboxr5   bboxmediabox_reproject_bboxcropreset)selfrM   rN   r0   r2   rO   	crop_dims	bbox_dimss           r(   __init__PageImage.__init__N   st    	 ,,D$..	$*xxXX]]((1,%#**DM %M]]''*dll1oQ.OP
 yyDMM) II#1$--t|| 		 99$,,T\\:I,,TYY7I MM..aL9Q</aL9Q</aL9Q</aL9Q</	DM 	

r'   rZ   r3   c                 d    Uu  p#pEU R                  X#45      u  pgU R                  XE45      u  pXgX4$ N)
_reproject)
r_   rZ   x0topx1bottom_x0_top_x1_bottoms
             r(   r\   PageImage._reproject_bbox   s;    "OORI.	|43((r'   coordc                     Uu  p#X R                   S   -
  U R                  -  nX0R                   S   -
  U R                  -  n[        U5      [        U5      4$ )zy
Given an (x0, top) tuple from the *root* coordinate system,
return an (x0, top) tuple in the *image* coordinate system.
r   r   )rZ   r5   int)r_   rp   rg   rh   rk   rl   s         r(   rf   PageImage._reproject   sP    
 IIaL DJJ.iil"djj0C#d)$$r'   c                     [         R                  R                  SU R                  R                  5      U l        U R
                  R                  U R                  5        [         R                  R                  U R
                  S5      U l	        U $ )Nr:   RGBA)
PILImagenewrN   rX   	annotatedpaste	ImageDrawDrawdrawr_   s    r(   r^   PageImage.reset   sY    udmm.@.@AT]]+MM&&t~~v>	r'   destformatquantizecolorsbitskwargsc                    U(       aB  U R                   R                  U[        R                  R                  S9R                  S5      nOU R                   nUR                  " U4UUU R                  U R                  4S.UD6  g )N)methodP)r   r   dpi)ry   r   rv   rw   
FASTOCTREErC   saver0   )r_   r   r   r   r   r   r   outs           r(   r   PageImage.save   sw     ..))&9M9M)NVVC ..C	
$//2		

 	
r'   c                 N    U R                  U R                  U R                  5      $ re   )	__class__rM   rN   r~   s    r(   copyPageImage.copy   s    ~~dii77r'   points_or_objstrokestroke_widthc                 T   [        U[        [        45      (       a  UnOL[        U[        5      (       a!  SU;   a  US    VVs/ s H  u  pVXV4PM
     nnnOUnUS   US   4US   US   44nU R                  R                  [        [        U R                  U5      5      X#S9  U $ s  snnf )Nptsrg   rh   ri   rj   fillwidth)
isinstancetuplelistdictr}   linemaprf   )r_   r   r   r   pointsxyobjs           r(   	draw_linePageImage.draw_line   s     meT]33"Ft,,-1G)6u)=>)=qf)=F>F  C4y#e*-D	3x=/IJF		T__f-.V 	 	
  ?s   B$list_of_lineszpd.DataFramec                 `    [         R                  " U5       H  nU R                  XBUS9  M     U $ Nr   r   )r   to_listr   )r_   r   r   r   r   s        r(   
draw_linesPageImage.draw_lines   s,     }-ANN1,NG .r'   locationc                     XR                   S   XR                   S   4nU R                  R                  U R                  U5      X#S9  U $ )Nr   rR   r   rZ   r}   r   r\   r_   r   r   r   r   s        r(   
draw_vlinePageImage.draw_vline   sB     IIaL(IIaLA		t++F3&Ur'   	locationszpd.Series[float]c                 J    [        U5       H  nU R                  XBUS9  M     U $ r   )r   r   r_   r   r   r   r   s        r(   draw_vlinesPageImage.draw_vlines   '     iAOOA<OH !r'   c                     U R                   S   XR                   S   U4nU R                  R                  U R                  U5      X#S9  U $ )Nr   rQ   r   r   r   s        r(   
draw_hlinePageImage.draw_hline   sD     ))A,))A,A		t++F3&Ur'   c                 J    [        U5       H  nU R                  XBUS9  M     U $ r   )r   r   r   s        r(   draw_hlinesPageImage.draw_hlines   r   r'   bbox_or_objr   c                    [        U[        [        45      (       a  UnOUnUS   US   US   US   4nUu  pxpUS-  n[        X{-   Xy-   S-  5      n[        X-   X-   S-  5      n[	        X-
  Xy-   S-  5      n	[	        X-
  X-   S-  5      n
U R                  XxX45      nU R                  R                  X[        R                  5        US:  a&  Xx4X44Xz4X44Xx4Xz44X4X44/nU R                  XUS9  U $ )Nrg   rh   ri   rj   rQ   r   r   )r   r   r   minmaxr\   r}   	rectangler   r%   r   )r_   r   r   r   r   rZ   r   rg   rh   ri   rj   half	fill_bboxsegmentss                 r(   	draw_rectPageImage.draw_rect   s(    kE4=11DCIs5z3t9c(mDD"aRWM*#*s|q01RWM*V]S\Q$67(("2)>?			IV-?-?@!RI&|,RL)RL)	H OOH,OOr'   list_of_rectsc                 `    [         R                  " U5       H  nU R                  XRX4S9  M     U $ )Nr   r   r   )r   r   r   )r_   r   r   r   r   r   s         r(   
draw_rectsPageImage.draw_rects  s,     }-ANN1NR .r'      center_or_objradiusc                     [        U[        5      (       a  UnOUnUS   US   -   S-  US   US   -   S-  4nUu  pxXr-
  X-
  Xr-   X-   4n	U R                  R                  U R	                  U	5      X45        U $ )Nrg   ri   rQ   rh   rj   )r   r   r}   ellipser\   )
r_   r   r   r   r   centerr   cxcyrZ   s
             r(   draw_circlePageImage.draw_circle(  s     mU++"FC4y3t9,1CJX4NRS3STFR["+r{C		$..t4dCr'   list_of_circlesc                 `    [         R                  " U5       H  nU R                  XRX4S9  M     U $ )N)r   r   r   )r   r   r   )r_   r   r   r   r   r   s         r(   draw_circlesPageImage.draw_circles9  s/     /AQDH 0r'   r   tablec                 <    U R                  UR                  X#US9  U $ )z
Outline all found tables.
r   )r   cells)r_   r   r   r   r   s        r(   debug_tablePageImage.debug_tableD  s'     	KKd 	 	
 r'   table_settingsc                    [        U[        5      (       a  UnOEUb  [        U[        [        45      (       a  U R                  R                  U5      nO[        S5      eUR                   H  nU R                  U5        M     U R                  UR                  SS9  U R                  [        UR                  R                  5       5      [        R                   [        R"                  S-   SS9  U $ )NzGArgument must be instance of TableFinderor a TableFinder settings dict.r   )r   r*   rR   )r   r   r   )r   r   r   r   rM   debug_tablefinder
ValueErrortablesr   r   edgesr   r   intersectionskeysr   r%   r$   )r_   r   finderr   s       r(   r   PageImage.debug_tablefinderS  s     nk22#F#z]D1(
 (
 YY00@F2 
 ]]EU# # 	15%%**,-##;;'	 	 	
 r'   x_tolerancey_tolerancec                 X    U R                   R                  XES9nU R                  XaX#S9  U $ )N)r   r   r   r   r   )rM   extract_wordsr   )r_   r   r   r   r   r   wordss          r(   outline_wordsPageImage.outline_wordsr  s7     		''# ( 
 	4Sr'   )r   r   r   r   r   r   g     O@c                 P    U R                  U R                  R                  XUS9  U $ )Nr   )r   rM   chars)r_   r   r   r   s       r(   outline_charsPageImage.outline_chars  s+     	IIOOFL 	 	
 r'   c                 Z    [        5       nU R                  US5        UR                  5       $ )NPNG)r   r   getvalue)r_   bs     r(   
_repr_png_PageImage._repr_png_  s#    I		!Uzz|r'   c                 8    U R                   R                  5         g re   )ry   showr~   s    r(   r   PageImage.show  s    r'   )ry   rZ   r}   rN   rM   r0   rU   r5   )r3   rK   )r   T      re   )r3   N)=r   r   r    r!   DEFAULT_RESOLUTIONr   rv   rw   r
   rr   floatboolrb   r   r	   r\   r   rf   r^   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'   r(   rK   rK   M   s    /3(:$22 399??+2 #u*%	2
 2 2h)F )uS#sC5G/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65=)  	
  
H %(0	T&\:~EF	 	 		
 	 
	 $(We^,  	
  
( $(	tG}j.HI	 	 		
 	 
	 %(  	
  
& 	 +}.>>?

 
B )$0"66"66  	
   
" +aCL10	

 
 	

 

E 
r'   rK   )F)4r  ior   r   typingr   r   r   r   r	   r
   	PIL.Imagerv   PIL.ImageDrawr<    r   _typingr   r   r   r   r   r   r   r   r   r   r   utils.exceptionsr   pandaspdrM   r   r   r$   r  r"   r  r	  r  rr   r  r  r
  r  r  r  rw   rI   rK   r   r'   r(   <module>r     s3    & C C     E E F F 3  {{U"f$  
c3m$eCc3,>&?D
E%-tG}eCD  &.')*&
7<<
 & & c5j!	&
 sm& & 	YY__&RF Fr'   