o
    œÀvht'  ã                   @   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é   )Údeprecation_with_replacement)ÚAnnotationFlag)ÚArrayObjectÚDictionaryObject)ÚBooleanObjectÚFloatObjectÚ
NameObjectÚNumberObjectÚTextStringObject)ÚRectangleObject)Ú
hex_to_rgbé   )ÚNO_FLAGSÚAnnotationDictionary)é   é
   )Ú	TypeAliasÚVertexÚverticesÚreturnc                 C   sz   | 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© r%   úc/var/www/html/hyperkenya/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 dd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)   r   c                C   s    |d urt |ƒ| tdƒ< d S d S )Nz/T)r   r   )Úselfr)   r%   r%   r&   Ú__init__3   s   ÿzMarkupAnnotation.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr+   r%   r%   r%   r&   r(   )   s     	r(   c                       sV   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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ÚflagsÚrectÚtextr2   r3   Úkwargsr   Nc                   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*   r4   r5   r2   r3   r6   ©Ú	__class__r%   r&   r+   E   s   	zText.__init__)r,   r-   r.   r/   r   r   r   r   Úfloatr0   ÚboolÚintr   r+   Ú__classcell__r%   r%   r;   r&   r1   8   s"    úýüûúùør1   c                       s|   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d„Z‡  ZS )ÚFreeTextzA FreeText annotationÚ	HelveticaFÚ14ptÚ000000Úffffff)ÚfontÚboldÚitalicÚ	font_sizeÚ
font_colorÚborder_colorÚbackground_colorr5   r4   rF   rG   rH   rI   rJ   rK   rL   r6   r   Nc       	            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 r‘ttdƒtdƒiƒ| tdƒ< |	d ur¦t	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   r4   rF   rG   rH   rI   rJ   rK   rL   r6   Úfont_strÚdefault_appearance_stringÚstr;   r%   r&   r+   Y   sF   


úÿ
þÿÿÿzFreeText.__init__)r,   r-   r.   r/   r0   r   r   r   r=   r>   r   r   r+   r@   r%   r%   r;   r&   rA   V   s@    õýüûúùø	÷
öõôórA   c                       sN   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	d
„Z
‡  ZS )ÚLinerN   Úp1Úp2r4   r5   r6   r   Nc                    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^   r4   r5   r6   r;   r%   r&   r+   —   s2   



üÿþÿýÿèÿzLine.__init__)rN   )r,   r-   r.   r   r   r   r   r=   r0   r   r+   r@   r%   r%   r;   r&   r\   –   s    ûþýüûúùr\   c                       s.   e Zd Zdee deddf‡ fdd„Z‡  ZS )ÚPolyLiner   r6   r   Nc              
      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                	       óL   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d„Z
‡  ZS )	Ú	RectangleN©Úinterior_colorr4   rl   r6   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¡ |rDtd	d
„ t|ƒD ƒƒ| tdƒ< d S d S )NÚinteriour_colorrl   ú5.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*   r4   rl   r6   r;   r%   r&   r+   Õ   s    ýÿÿÿzRectangle.__init__©r,   r-   r.   r   r   r   r=   r   r0   r   r+   r@   r%   r%   r;   r&   rj   Ô   ó    üþüûúrj   c                       sR   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d„Z‡  ZS )Ú	HighlightÚff0000F)Úhighlight_colorÚprintingr4   Úquad_pointsrx   ry   r6   r   Nc                   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
   ÚPRINTr3   )r*   r4   rz   rx   ry   r6   r;   r%   r&   r+   ð   s   	ÿüÿ
ÿzHighlight.__init__)r,   r-   r.   r   r   r   r=   r   r0   r>   r   r+   r@   r%   r%   r;   r&   rv   ï   s     úýüûúùørv   c                	       ri   )	ÚEllipseNrk   r4   rl   r6   r   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                       s6   e Zd Zdeeeef  deddf‡ fdd„Z‡  ZS )ÚPolygonr   r6   r   Nc                    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(   r1   rA   r\   r`   rj   rv   r|   r}   r%   r%   r%   r&   Ú<module>   s0   
 @(