o
    v!åg„'  ã                   @   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   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&   úg/mnt/skqttb/ctump_chatbot/chatbot/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__4   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Úflagsr%   Útextr3   r4   Ú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+   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                       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   r%   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   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                       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Úp2r%   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^   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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_colorr%   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+   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                       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Úprintingr%   Ú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
   Ú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   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)   r2   rA   r\   r`   rj   rv   r|   r}   r&   r&   r&   r'   Ú<module>   s0   
 @(