
    Ng6'                        U d dl Z d dl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 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 j        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,dS )%    N)ABC)AnyListOptionalTupleUnion   )deprecate_with_replacement)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 ]E\  }}t          ||          }t          ||          }t          ||          }t          ||          }Ft          ||||f          }|S )Nr   r   )minmaxr   )r   x_miny_minx_maxy_maxxyrects           a/var/www/html/ai-engine/env/lib/python3.11/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8DK    c                   0    e Zd ZdZdddee         fdZdS )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-   c                L    |!t          |          | t          d          <   d S d S )Nz/T)r   r   )selfr-   s     r(   __init__zMarkupAnnotation.__init__4   s0     %5i%@%@DD!!""" ! r*   )__name__
__module____qualname____doc__r   strr0    r*   r(   r,   r,   *   sU          6: A A AXc] A A A A A Ar*   r,   c                   d     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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flagsr'   textr9   r:   kwargsc                p    t                      j        di | t          d          | t          d          <   t          |          | t          d          <   t	          |          | t          d          <   t          |          | t          d          <   t          |          | t          d          <   d S )Nz/Text/Subtype/Rect	/Contentsz/Openz/Flagsr6   )superr0   r   r   r   r   r   )r/   r'   r;   r9   r:   r<   	__class__s         r(   r0   zText.__init__F   s     	""6"""'1'':':Z
##$$3D$9$9Z  !(8(>(>Z$$%$1$$7$7Z  !%1%%8%8Z!!"""r*   )r1   r2   r3   r4   r   r   r   r   floatr5   boolintr   r0   __classcell__rB   s   @r(   r8   r8   9   s        
 
" 9 9 9 OU5%+E%FFG9 	9
 9 9 9 9 9 9 9 9 9 9 9 9r*   r8   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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_colorr;   r'   rN   rO   rP   rQ   rR   rS   rT   r<   c       	             t                      j        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}|                     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          d t	          |	          D                       | t          d          <   d S d S )Nz	/FreeTextr>   r?   zfont: zitalic znormal zbold  z;text-align:left;color:# rgr@   z/DSz/DAz/Wr   z/BSc                 ,    g | ]}t          |          S r6   r   .0ns     r(   
<listcomp>z%FreeText.__init__.<locals>.<listcomp>   s    FFFAQFFFr*   /Cr6   )
rA   r0   r   r   r   updater   r   r   r   )r/   r;   r'   rN   rO   rP   rQ   rR   rS   rT   r<   font_strdefault_appearance_stringstrB   s                 r(   r0   zFreeText.__init__Z   s4    	""6"""'1+'>'>Z
##$$3D$9$9Z  !  	,"+++HH"+++H 	,")))HH"+++H2	22D22DD
DD$&! 	I .. P P/H,O",O,O,O))+D(H(H(H%:&&
;(?(?7##_T%:%:;'')9$)?)?5!!#3H#=#=5!!#34M#N#N		
 		
 		
 &6 t$$l1oo' 'DE""# '%0FF4D)E)EFFF& &DD!!""" ('r*   )r1   r2   r3   r4   r5   r   r   r   rC   rD   r   r   r0   rF   rG   s   @r(   rI   rI   W   s          "&.*2: : : : OU5%+E%FFG	:
 : : : : : sm: #3-: : : : : : : : : : :r*   rI   c                   \     e Zd Z	 ddededeeeeeeef         f         dede	f
 fdZ
 xZS )	LinerW   p1p2r'   r;   r<   c                     t                      j        di | |                     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           d S )Nr>   z/Liner?   z/Lr   r   z/LEz/None/ICg      ?r@   r6   )rA   r0   r`   r   r   r   r   r   )r/   rf   rg   r'   r;   r<   rB   s         r(   r0   zLine.__init__   sT    	""6""":&&
7(;(;7##_T%:%:4  +#BqE**#BqE**#BqE**#BqE**	# # 5!!;"7++"7++$ $ 5!!;#C((#C((#C(($ $ ;'')9$)?)?1	
 	
 	
 	
 	
r*   )rW   )r1   r2   r3   r   r   r   r   rC   r5   r   r0   rF   rG   s   @r(   re   re      s         $
 $
$
 $
 OU5%+E%FFG	$

 $
 $
 $
 $
 $
 $
 $
 $
 $
 $
 $
r*   re   c                   4     e Zd Zdee         def fdZ xZS )PolyLiner   r<   c                     t                      j        di | t          |          dk    rt          d          g }|D ]I\  }}|                    t          |                     |                    t          |                     J|                     t          d          t          d          t          d          t          |          t          d          t          t          |                    i           d S )Nr   6A polygon needs at least 1 vertex with two coordinatesr>   z	/PolyLine	/Verticesr?   r6   rA   r0   len
ValueErrorappendr   r`   r   r   r   r)   r/   r   r<   
coord_listr%   r&   rB   s         r(   r0   zPolyLine.__init__   s    
 	""6"""x==AUVVV
 	/ 	/DAql1oo...l1oo....:&&
;(?(?;''Z)@)@7##_5LX5V5V%W%W	
 	
 	
 	
 	
r*   )r1   r2   r3   r   r   r   r0   rF   rG   s   @r(   rk   rk      sS        
v,
 
 
 
 
 
 
 
 
 
 
r*   rk   c            	       b     e Zd Zdddeeeeeeef         f         dee         de	f fdZ
 xZS )	RectangleNinterior_colorr'   rx   r<   c          
         d|v rt          ddd           |d         }|d=  t                      j        di | |                     t	          d          t	          d          t	          d          t	          d          t	          d          t          |          i           |r8t          d	 t          |          D                       | t	          d
          <   d S d S )Ninteriour_colorrx   6.0.0/Type/Annotr>   z/Squarer?   c                 ,    g | ]}t          |          S r6   rZ   r[   s     r(   r^   z&Rectangle.__init__.<locals>.<listcomp>       DDDAQDDDr*   ri   r6   r
   rA   r0   r`   r   r   r   r   r/   r'   rx   r<   rB   s       r(   r0   zRectangle.__init__   s     &&&'8:JGTTT#$56N()""6"""7##Z%9%9:&&
9(=(=7##_T%:%:	
 	
 	
  	&1DDN)C)CDDD' 'DE""###	 	r*   r1   r2   r3   r   r   r   rC   r   r5   r   r0   rF   rG   s   @r(   rv   rv      s        
 )-	  OU5%+E%FFG !	
          r*   rv   c                   `     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
f
 fd	Z xZS )
	Highlightff0000F)highlight_colorprintingr'   quad_pointsr   r   r<   c                    t                      j        di | |                     t          d          t          d          t          d          t	          |          t          d          |t          d          t          d t          |          D                       i           |rt          j        | _	        d S d S )Nr>   z
/Highlightr?   z/QuadPointsr_   c                 ,    g | ]}t          |          S r6   rZ   r[   s     r(   r^   z&Highlight.__init__.<locals>.<listcomp>  s    III[^^IIIr*   r6   )
rA   r0   r`   r   r   r   r   r   PRINTr:   )r/   r'   r   r   r   r<   rB   s         r(   r0   zHighlight.__init__   s     	""6""":&&
<(@(@7##_T%:%:=));4  +IIZ-H-HIII# #			
 		
 		
  	.'-DJJJ	. 	.r*   )r1   r2   r3   r   r   r   rC   r   r5   rD   r   r0   rF   rG   s   @r(   r   r      s          (. . . OU5%+E%FFG. !	.
 . . . . . . . . . . . .r*   r   c            	       b     e Zd Zdddeeeeeeef         f         dee         de	f fdZ
 xZS )EllipseNrw   r'   rx   r<   c          
         d|v rt          ddd           |d         }|d=  t                      j        di | |                     t	          d          t	          d          t	          d          t	          d          t	          d          t          |          i           |r8t          d	 t          |          D                       | t	          d
          <   d S d S )Nrz   rx   r{   r|   r}   r>   z/Circler?   c                 ,    g | ]}t          |          S r6   rZ   r[   s     r(   r^   z$Ellipse.__init__.<locals>.<listcomp>!  r   r*   ri   r6   r   r   s       r(   r0   zEllipse.__init__
  s     &&&'8:JGTTT#$56N()""6"""7##Z%9%9:&&
9(=(=7##_T%:%:	
 	
 	
  	&1DDN)C)CDDD' 'DE""###	 	r*   r   rG   s   @r(   r   r   	  s        
 )-	  OU5%+E%FFG !	
          r*   r   c                   D     e Zd Zdeeeef                  def fdZ xZS )Polygonr   r<   c                 v    t                      j        di | t          |          dk    rt          d          g }|D ]I\  }}|                    t          |                     |                    t          |                     J|                     t          d          t          d          t          d          t          d          t          d          t          |          t          d          t          d	          t          d
          t          t          |                    i           d S )Nr   rm   r|   r}   r>   z/Polygonrn   z/ITz/PolygonCloudr?   r6   ro   rs   s         r(   r0   zPolygon.__init__&  s(   
 	""6"""x==AUVVV
 	/ 	/DAql1oo...l1oo....7##Z%9%9:&&
:(>(>;''Z)@)@5!!:o#>#>7##_5LX5V5V%W%W	
 	
 	
 	
 	
r*   )	r1   r2   r3   r   r   rC   r   r0   rF   rG   s   @r(   r   r   %  s]        
uUE\*+
 
 
 
 
 
 
 
 
 
 
r*   r   )-sysabcr   typingr   r   r   r   r   _utilsr
   	constantsr   genericr   r   generic._baser   r   r   r   r   generic._rectangler   generic._utilsr   _baser   r   version_infor   typing_extensionsrC   r   __annotations__r)   r,   r8   rI   re   rk   rv   r   r   r   r6   r*   r(   <module>r      s&   




       4 4 4 4 4 4 4 4 4 4 4 4 4 4 / / / / / / & & & & & & 3 3 3 3 3 3 3 3              1 0 0 0 0 0 ' ' ' ' ' ' 1 1 1 1 1 1 1 1BQB7""        ,+++++ %,'	 ' ' '	d6l 	 	 	 	 	A A A A A+S A A A9 9 9 9 9 9 9 9<= = = = = = = =@%
 %
 %
 %
 %
 %
 %
 %
P
 
 
 
 
 
 
 
,        6. . . . .  . . .2       8
 
 
 
 
 
 
 
 
 
r*   