o
    ªZht'  ã                   @   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   Zx_minZy_minZx_maxZy_maxÚxÚy© r!   ú\/var/www/html/lang_env/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Útextr.   r/   Ú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&   r0   r1   r.   r/   r2   ©Ú	__class__r!   r"   r'   E   s   	zText.__init__)r(   r)   r*   r+   r   r   r   r   Úfloatr,   ÚboolÚintr   r'   Ú__classcell__r!   r!   r7   r"   r-   8   s"    úýüûúùør-   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 annotationZ	HelveticaFZ14ptÚ000000Úffffff)ÚfontÚboldÚitalicÚ	font_sizeÚ
font_colorÚborder_colorÚbackground_colorr1   r0   r@   rA   rB   rC   rD   rE   rF   r2   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	/FreeTextr3   r4   zfont: zitalic znormal zbold ú z;text-align:left;color:#Ú Zrgr5   z/DSz/DAz/Wr   z/BSc                 S   ó   g | ]}t |ƒ‘qS r!   ©r   ©Ú.0Únr!   r!   r"   Ú
<listcomp>’   ó    z%FreeText.__init__.<locals>.<listcomp>ú/Cr!   )
r6   r'   r   r   r   Úupdater   r   r   r   )r&   r1   r0   r@   rA   rB   rC   rD   rE   rF   r2   Zfont_strZdefault_appearance_stringÚstr7   r!   r"   r'   Y   sF   


úÿ
þÿÿÿzFreeText.__init__)r(   r)   r*   r+   r,   r   r   r   r9   r:   r   r   r'   r<   r!   r!   r7   r"   r=   V   s@    õýüûúùø	÷
öõôór=   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 )ÚLinerH   Úp1Úp2r0   r1   r2   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 )Nr3   z/Liner4   z/Lr   r   z/LEz/Noneú/ICg      à?r5   r!   )r6   r'   rQ   r   r   r   r   r   )r&   rT   rU   r0   r1   r2   r7   r!   r"   r'   —   s2   



üÿþÿýÿèÿzLine.__init__)rH   )r(   r)   r*   r   r   r   r   r9   r,   r   r'   r<   r!   r!   r7   r"   rS   –   s    ûþýüûúùrS   c                       s.   e Zd Zdee deddf‡ fdd„Z‡  ZS )ÚPolyLiner   r2   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 coordinatesr3   z	/PolyLineú	/Verticesr4   r!   ©r6   r'   ÚlenÚ
ValueErrorÚappendr   rQ   r   r   r   r#   ©r&   r   r2   Z
coord_listr   r    r7   r!   r"   r'   ¿   s   ýÿzPolyLine.__init__)r(   r)   r*   r   r   r   r'   r<   r!   r!   r7   r"   rW   ¾   s    þýürW   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_colorr0   rb   r2   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_colorrb   ú5.0.0ú/Typeú/Annotr3   z/Squarer4   c                 S   rI   r!   rJ   rK   r!   r!   r"   rN   ë   rO   z&Rectangle.__init__.<locals>.<listcomp>rV   r!   ©r	   r6   r'   rQ   r   r   r   r   ©r&   r0   rb   r2   r7   r!   r"   r'   Õ   s    ýÿÿÿzRectangle.__init__©r(   r)   r*   r   r   r   r9   r   r,   r   r'   r<   r!   r!   r7   r"   r`   Ô   ó    üþüûúr`   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Úprintingr0   Úquad_pointsrn   ro   r2   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 )	Nr3   z
/Highlightr4   z/QuadPointsrP   c                 S   rI   r!   rJ   rK   r!   r!   r"   rN      rO   z&Highlight.__init__.<locals>.<listcomp>r!   )
r6   r'   rQ   r   r   r   r   r
   ZPRINTr/   )r&   r0   rp   rn   ro   r2   r7   r!   r"   r'   ð   s   	ÿüÿ
ÿzHighlight.__init__)r(   r)   r*   r   r   r   r9   r   r,   r:   r   r'   r<   r!   r!   r7   r"   rl   ï   s     úýüûúùørl   c                	       r_   )	ÚEllipseNra   r0   rb   r2   r   c             	      rc   )Nrd   rb   re   rf   rg   r3   z/Circler4   c                 S   rI   r!   rJ   rK   r!   r!   r"   rN      rO   z$Ellipse.__init__.<locals>.<listcomp>rV   r!   rh   ri   r7   r!   r"   r'   	  s    ýÿÿÿzEllipse.__init__rj   r!   r!   r7   r"   rq     rk   rq   c                       s6   e Zd Zdeeeef  deddf‡ fdd„Z‡  ZS )ÚPolygonr   r2   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   rX   rf   rg   r3   z/PolygonrY   z/ITz/PolygonCloudr4   r!   rZ   r^   r7   r!   r"   r'   %  s   ûÿzPolygon.__init__)	r(   r)   r*   r   r   r9   r   r'   r<   r!   r!   r7   r"   rr   $  s    þýürr   )-ÚsysÚabcr   Útypingr   r   r   r   r   Z_utilsr	   Ú	constantsr
   Zgenericr   r   Zgeneric._baser   r   r   r   r   Zgeneric._rectangler   Zgeneric._utilsr   Z_baser   r   Úversion_infor   Útyping_extensionsr9   r   Ú__annotations__r#   r$   r-   r=   rS   rW   r`   rl   rq   rr   r!   r!   r!   r"   Ú<module>   s0   
 @(