
    hu%                        U d dl Z d dlmZ d dlmZmZmZ ddlmZ ddl	m
Z
mZ ddlmZ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 e j2                  dd dk\  rd dlmZ nd dlmZ eeef   Zeed<   de e   defdZ! G d dee      Z" G d de"      Z# G d de"      Z$ G d de"      Z% G d de"      Z& G d de"      Z' G d de"      Z( G d  d!e"      Z) G d" d#e"      Z*y)$    N)ABC)AnyOptionalUnion   )AnnotationFlag)ArrayObjectDictionaryObject)BooleanObjectFloatObject
NameObjectNumberObjectTextStringObject)RectangleObject)
hex_to_rgb   )NO_FLAGSAnnotationDictionary)   
   )	TypeAliasVertexverticesreturnc                     | d   d   | d   d   }}| d   d   | d   d   }}| D ]5  \  }}t        ||      }t        ||      }t        ||      }t        ||      }7 t        ||||f      S )Nr   r   )minmaxr   )r   x_miny_minx_maxy_maxxys          d/var/www/html/aiagenthome/venv/lib/python3.12/site-packages/pypdf/annotations/_markup_annotations.py_get_bounding_rectangler%      s    A;q>8A;q>5EA;q>8A;q>5E1E1E1E1E1	 
 E5%788    c                   ,    e Zd ZdZdddee   ddfdZy)MarkupAnnotationz
    Base class for all markup annotations.

    Args:
        title_bar: Text to be displayed in the title bar of the annotation;
            by convention this is the name of the author

    N)	title_barr)   r   c                8    |t        |      | t        d      <   y y )Nz/T)r   r   )selfr)   s     r$   __init__zMarkupAnnotation.__init__2   s!     %5i%@DD!" !r&   )__name__
__module____qualname____doc__r   strr,    r&   r$   r(   r(   (   s&     6: AXc] Ad Ar&   r(   c                   \     e Zd ZdZdeddeeeeeeef   f   de	de
deded	d
f fdZ xZS )Textz
    A text annotation.

    Args:
        rect: array of four integers ``[xLL, yLL, xUR, yUR]``
            specifying the clickable rectangular area
        text: The text that is added to the document
        open:
        flags:

    F)openflagsrecttextr5   r6   kwargsr   Nc                
   t        |   di | t        d      | t        d      <   t        |      | t        d      <   t	        |      | t        d      <   t        |      | t        d      <   t        |      | t        d      <   y )Nz/Text/Subtype/Rect	/Contentsz/Openz/Flagsr2   )superr,   r   r   r   r   r   )r+   r7   r8   r5   r6   r9   	__class__s         r$   r,   zText.__init__D   sy     	"6"'1'':Z
#$$3D$9Z !(8(>Z$%$1$$7Z !%1%%8Z!"r&   )r-   r.   r/   r0   r   r   r   tuplefloatr1   boolintr   r,   __classcell__r?   s   @r$   r4   r4   7   sn    
" 9 OU5%+E%FFG9 	9
 9 9 9 
9 9r&   r4   c                        e Zd ZdZddddddddded	eeeeeeef   f   d
ede	de	dedede
e   de
e   deddf fdZ xZS )FreeTextzA FreeText annotation	HelveticaF14pt000000ffffff)fontbolditalic	font_size
font_colorborder_colorbackground_colorr8   r7   rL   rM   rN   rO   rP   rQ   rR   r9   r   Nc       	            t        |   di |
 t        d      | t        d      <   t        |      | t        d      <   d}|r| d}n| d}|r| d}n| d}| | d| }| d	| }d
}|rt	        |      D ]	  }| | d} | d}| j                  t        d      t        d      t        d      t        |      t        d      t        |      t        d      t        |      t        d      t        |      i       |+t        t        d      t        d      i      | t        d      <   |	8t        t	        |	      D cg c]  }t        |       c}      | t        d      <   y y c c}w )Nz	/FreeTextr;   r<   zfont: zitalic znormal zbold  z;text-align:left;color:# rgr=   z/DSz/DAz/Wr   z/BS/Cr2   )r>   r,   r   r   r   updater   r
   r   r	   r   )r+   r8   r7   rL   rM   rN   rO   rP   rQ   rR   r9   font_strdefault_appearance_stringstnr?   s                  r$   r,   zFreeText.__init__X   s    	"6"'1+'>Z
#$$3D$9Z ! "7+H"7+H"5)H"7+HZ	{!D62Z7
|D$&! ./H.I"Q,O) /+D*ER(H%:&
;(?7#_T%:;')9$)?5!#3H#=5!#34M#N		
 &6 t$l1o'DE"# '%0)34D)EF)EAQ)EF&DD!" (Fs   E()r-   r.   r/   r0   r1   r   r   r@   rA   rB   r   r   r,   rD   rE   s   @r$   rG   rG   U   s      "&.*2: : OU5%+E%FFG	:
 : : : : : sm: #3-: : 
: :r&   rG   c                   T     e Zd Z	 d	dededeeeeeeef   f   dede	ddf fdZ
 xZS )
Linep1p2r7   r8   r9   r   Nc                    t        |   di | | j                  t        d      t        d      t        d      t	        |      t        d      t        t        |d         t        |d         t        |d         t        |d         g      t        d      t        t        d      t        d      g      t        d	      t        t        d
      t        d
      t        d
      g      t        d      t        |      i       y )Nr;   z/Liner<   z/Lr   r   z/LEz/None/ICg      ?r=   r2   )r>   r,   rX   r   r   r	   r   r   )r+   r_   r`   r7   r8   r9   r?   s         r$   r,   zLine.__init__   s     	"6":&
7(;7#_T%:4 +#BqE*#BqE*#BqE*#BqE*	# 5!;"7+"7+$ 5!;#C(#C(#C($ ;')9$)?1	
r&   )rU   )r-   r.   r/   r   r   r   r@   rA   r1   r   r,   rD   rE   s   @r$   r^   r^      sd     $
$
 $
 OU5%+E%FFG	$

 $
 $
 
$
 $
r&   r^   c                   2     e Zd Zdee   deddf fdZ xZS )PolyLiner   r9   r   Nc                    t        |   di | t        |      dk(  rt        d      g }|D ]9  \  }}|j	                  t        |             |j	                  t        |             ; | j                  t        d      t        d      t        d      t        |      t        d      t        t        |            i       y )Nr   6A polygon needs at least 1 vertex with two coordinatesr;   z	/PolyLine	/Verticesr<   r2   r>   r,   len
ValueErrorappendr   rX   r   r	   r   r%   r+   r   r9   
coord_listr"   r#   r?   s         r$   r,   zPolyLine.__init__   s    
 	"6"x=AUVV
DAql1o.l1o.  	:&
;(?;'Z)@7#_5LX5V%W	
r&   )r-   r.   r/   listr   r   r,   rD   rE   s   @r$   rd   rd      s-    
v,
 
 
	
 
r&   rd   c            	       T     e Zd Zdddeeeeeeef   f   dee   de	ddf fdZ
 xZS )	RectangleNinterior_colorr7   rr   r9   r   c          
      <   t        |   di | | j                  t        d      t        d      t        d      t        d      t        d      t	        |      i       |r8t        t        |      D cg c]  }t        |       c}      | t        d      <   y y c c}w )N/Type/Annotr;   z/Squarer<   rb   r2   r>   r,   rX   r   r   r	   r   r   r+   r7   rr   r9   r\   r?   s        r$   r,   zRectangle.__init__   s     	"6"7#Z%9:&
9(=7#_T%:	
 &1)3N)CD)CAQ)CD'DE"# D   2Br-   r.   r/   r   r   r@   rA   r   r1   r   r,   rD   rE   s   @r$   rp   rp      sT    
 )-	OU5%+E%FFG !	
  
 r&   rp   c                   X     e Zd Zddddeeeeeeef   f   dedede	de
d	d
f fdZ xZS )	Highlightff0000F)highlight_colorprintingr7   quad_pointsr}   r~   r9   r   Nc                N   t        |   di | | j                  t        d      t        d      t        d      t	        |      t        d      |t        d      t        t        |      D cg c]  }t        |       c}      i       |rt        j                  | _
        y y c c}w )Nr;   z
/Highlightr<   z/QuadPointsrW   r2   )r>   r,   rX   r   r   r	   r   r   r   PRINTr6   )r+   r7   r   r}   r~   r9   r\   r?   s          r$   r,   zHighlight.__init__   s     	"6":&
<(@7#_T%:=);4 +-7-HI-H[^-HI#			
 '--DJ 	 Js   +B")r-   r.   r/   r   r   r@   rA   r	   r1   rB   r   r,   rD   rE   s   @r$   r{   r{      si      (. OU5%+E%FFG. !	.
 . . . 
. .r&   r{   c            	       T     e Zd Zdddeeeeeeef   f   dee   de	ddf fdZ
 xZS )EllipseNrq   r7   rr   r9   r   c          
      <   t        |   di | | j                  t        d      t        d      t        d      t        d      t        d      t	        |      i       |r8t        t        |      D cg c]  }t        |       c}      | t        d      <   y y c c}w )Nrt   ru   r;   z/Circler<   rb   r2   rv   rw   s        r$   r,   zEllipse.__init__  s     	"6"7#Z%9:&
9(=7#_T%:	
 &1)3N)CD)CAQ)CD'DE"# Drx   ry   rE   s   @r$   r   r     sT    
 )-	OU5%+E%FFG !	
  
 r&   r   c                   <     e Zd Zdeeeef      deddf fdZ xZS )Polygonr   r9   r   Nc                    t        |   di | t        |      dk(  rt        d      g }|D ]9  \  }}|j	                  t        |             |j	                  t        |             ; | j                  t        d      t        d      t        d      t        d      t        d      t        |      t        d      t        d	      t        d
      t        t        |            i       y )Nr   rf   rt   ru   r;   z/Polygonrg   z/ITz/PolygonCloudr<   r2   rh   rl   s         r$   r,   zPolygon.__init__  s    
 	"6"x=AUVV
DAql1o.l1o.  	7#Z%9:&
:(>;'Z)@5!:o#>7#_5LX5V%W	
r&   )	r-   r.   r/   rn   r@   rA   r   r,   rD   rE   s   @r$   r   r     s7    
uUE\*+
 
 
	
 
r&   r   )+sysabcr   typingr   r   r   	constantsr   genericr	   r
   generic._baser   r   r   r   r   generic._rectangler   generic._utilsr   _baser   r   version_infor   typing_extensionsr@   rA   r   __annotations__rn   r%   r(   r4   rG   r^   rd   rp   r{   r   r   r2   r&   r$   <module>r      s    
  ' ' & 3  1 ' 1BQ7"  , %,'	 '9d6l 9 9A+S A9 9<= =@%
 %
P
 
,  ..  .2 0
 
r&   