o
    li6'                     @   s  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dZ#G dd deeZ$G dd de$Z%G dd de$Z&G dd de$Z'G dd de$Z(G dd de$Z)G d d! d!e$Z*G d"d# d#e$Z+G d$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                 C   s~   | d d | d d }}| d d | d d }}| D ]\}}t ||}t ||}t||}t||}qt||||f}|S )Nr   r   )minmaxr   )r   x_miny_minx_maxy_maxxyrect r&   d/var/www/html/pca-backend/venv/lib/python3.10/site-packages/pypdf/annotations/_markup_annotations.py_get_bounding_rectangle   s   


r(   c                   @   s(   e Zd ZdZdddee fd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                C   s    |d urt || td< d S d S )Nz/T)r   r   )selfr*   r&   r&   r'   __init__4   s   zMarkupAnnotation.__init__)__name__
__module____qualname____doc__r   strr,   r&   r&   r&   r'   r)   *   s    	r)   c                       sR   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	d
Z  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%   textr3   r4   kwargsc                   sf   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/Flagsr&   )superr,   r   r   r   r   r   )r+   r%   r5   r3   r4   r6   	__class__r&   r'   r,   F   s   	zText.__init__)r-   r.   r/   r0   r   r   r   r   floatr1   boolintr   r,   __classcell__r&   r&   r;   r'   r2   9   s    r2   c                       sx   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dZ  ZS )FreeTextzA FreeText annotation	HelveticaF14pt000000ffffff)fontbolditalic	font_size
font_colorborder_colorbackground_colorr5   r%   rF   rG   rH   rI   rJ   rK   rL   r6   c       	            sP  t  jdi |
 td| td< t|| td< d}|r#| d}n| d}|r0| d}n| d}| | d| }| d	| }d
}|r\t|D ]	}| | d}qM| d}| tdtdtdt|tdt|tdt|tdt|i |d u rttdtdi| td< |	d urt	dd t|	D | td< d S d S )Nz	/FreeTextr7   r8   zfont: zitalic znormal zbold  z;text-align:left;color:# rgr9   z/DSz/DAz/Wr   z/BSc                 S      g | ]}t |qS r&   r   .0nr&   r&   r'   
<listcomp>       z%FreeText.__init__.<locals>.<listcomp>/Cr&   )
r:   r,   r   r   r   updater   r   r   r   )r+   r5   r%   rF   rG   rH   rI   rJ   rK   rL   r6   font_strdefault_appearance_stringstr;   r&   r'   r,   Z   sF   



zFreeText.__init__)r-   r.   r/   r0   r1   r   r   r   r=   r>   r   r   r,   r@   r&   r&   r;   r'   rA   W   s<    	
rA   c                       sJ   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dZ
  ZS )
LinerN   p1p2r%   r5   r6   c                    s   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 )Nr7   z/Liner8   z/Lr   r   z/LEz/None/ICg      ?r9   r&   )r:   r,   rX   r   r   r   r   r   )r+   r]   r^   r%   r5   r6   r;   r&   r'   r,      s2   



zLine.__init__)rN   )r-   r.   r/   r   r   r   r   r=   r1   r   r,   r@   r&   r&   r;   r'   r\      s    r\   c                       s*   e Zd Zdee def fddZ  ZS )PolyLiner   r6   c              
      s   t  jdi | t|dkrtdg }|D ]\}}|t| |t| q| tdtdtdt|tdt	t
|i d S )Nr   6A polygon needs at least 1 vertex with two coordinatesr7   z	/PolyLine	/Verticesr8   r&   r:   r,   len
ValueErrorappendr   rX   r   r   r   r(   r+   r   r6   
coord_listr#   r$   r;   r&   r'   r,      s   zPolyLine.__init__)r-   r.   r/   r   r   r   r,   r@   r&   r&   r;   r'   r`      s    r`   c                	       H   e Zd Zdddeeeeeeef f dee de	f fddZ
  ZS )	RectangleNinterior_colorr%   rl   r6   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 |rDtd	d
 t|D | td< d S d S )Ninteriour_colorrl   6.0.0/Type/Annotr7   z/Squarer8   c                 S   rP   r&   rQ   rR   r&   r&   r'   rU      rV   z&Rectangle.__init__.<locals>.<listcomp>r_   r&   r	   r:   r,   rX   r   r   r   r   r+   r%   rl   r6   r;   r&   r'   r,      s    zRectangle.__init__r-   r.   r/   r   r   r   r=   r   r1   r   r,   r@   r&   r&   r;   r'   rj          rj   c                       sN   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	d
Z  ZS )	Highlightff0000F)highlight_colorprintingr%   quad_pointsrx   ry   r6   c                   sj   t  jdi | | tdtdtdt|td|tdtdd t|D i |r3tj| _	d S d S )	Nr7   z
/Highlightr8   z/QuadPointsrW   c                 S   rP   r&   rQ   rR   r&   r&   r'   rU     rV   z&Highlight.__init__.<locals>.<listcomp>r&   )
r:   r,   rX   r   r   r   r   r
   PRINTr4   )r+   r%   rz   rx   ry   r6   r;   r&   r'   r,      s   	
zHighlight.__init__)r-   r.   r/   r   r   r   r=   r   r1   r>   r   r,   r@   r&   r&   r;   r'   rv      s    rv   c                	       ri   )EllipseNrk   r%   rl   r6   c             	      rm   )Nrn   rl   ro   rp   rq   r7   z/Circler8   c                 S   rP   r&   rQ   rR   r&   r&   r'   rU   !  rV   z$Ellipse.__init__.<locals>.<listcomp>r_   r&   rr   rs   r;   r&   r'   r,   
  s    zEllipse.__init__rt   r&   r&   r;   r'   r|   	  ru   r|   c                       s2   e Zd Zdeeeef  def fddZ  ZS )Polygonr   r6   c                    s   t  jdi | t|dkrtdg }|D ]\}}|t| |t| q| tdtdtdtdtdt|tdtd	td
t	t
|i d S )Nr   ra   rp   rq   r7   z/Polygonrb   z/ITz/PolygonCloudr8   r&   rc   rg   r;   r&   r'   r,   &  s   zPolygon.__init__)	r-   r.   r/   r   r   r=   r   r,   r@   r&   r&   r;   r'   r}   %  s    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_extensionsr=   r   __annotations__r(   r)   r2   rA   r\   r`   rj   rv   r|   r}   r&   r&   r&   r'   <module>   s0   
 @(