Ë
    vl�j¢   ã                   ó   — d dl Z d dlZd dlmZmZ d dlmZmZmZ d dl	m
Z
 d dlmZmZmZ d dlmZmZ d dlmZ d dlmZmZmZmZ d d	lmZ d d
lmZmZ  ej<                  e«      Z  ed«      Z! ed«      Z" G d„ d«      Z#y)é    N)Ú	ContainerÚIterator)ÚAnyÚBinaryIOÚClassVar)Úsettings)ÚPDFDocumentÚPDFNoPageLabelsÚPDFTextExtractionNotAllowed)ÚPDFObjectNotFoundÚPDFValueError)Ú	PDFParser)Ú
dict_valueÚ	int_valueÚ
list_valueÚresolve1)ÚLIT)ÚRectÚ
parse_rectÚPageÚPagesc                   ó  — e Zd ZU dZdededededz  ddf
d„Zdefd	„Zh d
£Z	e
ee      ed<   ededed    fd„«       Ze	 	 	 	 	 ddedee   dz  dededededed    fd„«       Zdedefd„Zdededefd„Zdedee   fd„Zy)ÚPDFPageaz  An object that holds the information about a page.

    A PDFPage object is merely a convenience class that has a set
    of keys and values, which describe the properties of a page
    and point to its contents.

    Attributes
    ----------
      doc: a PDFDocument object.
      pageid: any Python object that can uniquely identify the page.
      attrs: a dictionary of page attributes.
      contents: a list of PDFStream objects that represents the page content.
      lastmod: the last modified time of the page.
      resources: a dictionary of resources used by the page.
      mediabox: the physical size of the page.
      cropbox: the crop rectangle of the page.
      rotate: the page rotation (in degree).
      annots: the page annotations.
      beads: a chain that represents natural reading order.
      label: the page's label (typically, the logical page number).

    ÚdocÚpageidÚattrsÚlabelNÚreturnc                 ó  — || _         || _        t        |«      | _        || _        t        | j                  j                  d«      «      | _        t        | j                  j                  di «      «      | _        | j                  | j                  j                  d«      «      | _
        | j                  | j                  j                  d«      | j                  «      | _        | j                  | j                  j                  d«      «      | _        t        | j                  j                  dd«      «      dz   dz  | _        | j                  j                  d	«      | _        | j                  j                  d
«      | _        y)zßInitialize a page object.

        doc: a PDFDocument object.
        pageid: any Python object that can uniquely identify the page.
        attrs: a dictionary of page attributes.
        label: page label string.
        ÚLastModifiedÚ	ResourcesÚMediaBoxÚCropBoxÚContentsÚRotater   ih  ÚAnnotsÚBN)r   r   r   r   r   r   ÚgetÚlastmodÚ	resourcesÚ_parse_mediaboxÚmediaboxÚ_parse_cropboxÚcropboxÚ_parse_contentsÚcontentsr   ÚrotateÚannotsÚbeads)Úselfr   r   r   r   s        úF/var/www/html/pp/venv/lib/python3.12/site-packages/pdfminer/pdfpage.pyÚ__init__zPDFPage.__init__1   s  € ð ˆŒØˆŒÜ Ó&ˆŒ
ØˆŒ
Ü §
¡
§¡¨~Ó >Ó?ˆŒÜ/7Ø�J‰J�N‰N˜;¨Ó+ó0
ˆŒð ×,Ñ,¨T¯Z©Z¯^©^¸JÓ-GÓHˆŒØ×*Ñ*¨4¯:©:¯>©>¸)Ó+DÀdÇmÁmÓTˆŒØ×,Ñ,¨T¯Z©Z¯^©^¸JÓ-GÓHˆŒä  §¡§¡°¸!Ó!<Ó=ÀÑCÀsÑJˆŒØ—j‘j—n‘n XÓ.ˆŒØ—Z‘Z—^‘^ CÓ(ˆ�
ó    c                 ó<   — d| j                   ›d| j                  ›d�S )Nz<PDFPage: Resources=z, MediaBox=ú>)r*   r,   )r4   s    r5   Ú__repr__zPDFPage.__repr__P   s"   € Ø% d§n¡nÐ%7°{À4Ç=Á=ÐBSÐSTÐUÐUr7   >   r%   r#   r"   r!   ÚINHERITABLE_ATTRSÚdocumentc              #   óü  ‡ ‡‡	K  — 	 d
dt         dt        t        t         f   dt        t            d z  dt        t
        t        t        t         t        t         t         f   f   f      fˆ ˆ	ˆfd„Š		 ‰j                  «       }d}d‰j                  v rB ‰	‰j                  d   ‰j                  «      }|D ]  \  }} ‰ ‰||t        |«      «      –— d}Œ |sv‰j                  D ]f  }|j                  «       D ]Q  }	 ‰j                  |«      }t!        |t        «      r-|j#                  d	«      t$        u r ‰ ‰||t        |«      «      –— ŒS Œh y y # t        $ r t        j                  d «      }Y Œëw xY w# t&        $ r Y Œ‡w xY w­w)NÚobjÚparentÚvisitedr   c              3   óÀ  •K  — t        | t        «      r+| }t        ‰j                  |«      «      j	                  «       }n%| j
                  }t        | «      j	                  «       }|€
t        «       }||v ry |j                  |«       |j                  «       D ]  \  }}|‰	j                  v sŒ||vsŒ|||<   Œ  |j                  d«      }|€!t        j                  s|j                  d«      }|t        u rCd|v r?t        j                  d|d   «       t!        |d   «      D ]  } ‰
|||«      E d {  –—†  Œ y |t"        u rt        j                  d|«       ||f–— y y 7 Œ-­w)NÚTypeÚtypeÚKidszPages: Kids=%rzPage: %r)Ú
isinstanceÚintr   ÚgetobjÚcopyÚobjidÚsetÚaddÚitemsr;   r(   r   ÚSTRICTÚLITERAL_PAGESÚlogÚdebugr   ÚLITERAL_PAGE)r>   r?   r@   Ú	object_idÚobject_propertiesÚkÚvÚobject_typeÚchildÚclsÚdepth_first_searchr<   s            €€€r5   rY   z0PDFPage.create_pages.<locals>.depth_first_search\   sd  øè ø€ ô
 ˜#œsÔ#Ø�	Ü$.¨x¯©¸yÓ/IÓ$J×$OÑ$OÓ$QÑ!ð  ŸI™I�	Ü$.¨s£O×$8Ñ$8Ó$:Ð!ð ˆÜ›%�Ø˜GÑ#ØØ�K‰K˜	Ô"àŸ™›ò -‘��1Ø˜×-Ñ-Ò-°!Ð;LÒ2LØ+,Ð% aÒ(ð-ð ,×/Ñ/°Ó7ˆKØÐ"¬8¯?ª?Ø/×3Ñ3°FÓ;�àœmÑ+°Ð:KÑ0KÜ—	‘	Ð*Ð,=¸fÑ,EÔFÜ'Ð(9¸&Ñ(AÓBò U�EÙ1°%Ð9JÈGÓT×TÑTñUð ¤Ñ,Ü—	‘	˜*Ð&7Ô8Ø Ð"3Ð4Ó4ð -ð Uús   ƒB'EÂ+EÂ0A>EÄ.EÄ/.EFr   TrB   ©N)r   ÚdictÚstrrJ   r   ÚtuplerF   Úget_page_labelsr
   Ú	itertoolsÚrepeatÚcatalogÚnextÚxrefsÚ
get_objidsrG   rE   r(   rQ   r   )
rX   r<   Úpage_labelsÚpagesÚobjectsrI   ÚtreeÚxrefr>   rY   s
   ``       @r5   Úcreate_pageszPDFPage.create_pagesZ   sƒ  úè ø€ ð
 (,ñ$	5Üð$	5äœœc˜‘Nð$	5ô œ‘X ‘_ð$	5ô ”eœC¤¤c¬4´´S°©>Ð&9Ñ!:Ð:Ñ;Ñ<÷	$	5ðL	1Ø08×0HÑ0HÓ0JˆKð ˆØ�h×&Ñ&Ñ&Ù(¨×)9Ñ)9¸'Ñ)BÀH×DTÑDTÓUˆGØ&ò ‘��tÙ˜( E¨4´°kÓ1BÓCÒCØ‘ðñ à Ÿ™ò �Ø!Ÿ_™_Ó.ò �EðØ&Ÿo™o¨eÓ4˜Ü% c¬4Ô0°S·W±W¸V³_ÌÑ5TÙ"% h°°s¼DÀÓ<MÓ"NÒNøñ	ñð øô ò 	1Ü#×*Ñ*¨4Ó0ŠKð	1ûô" -ò ÙðüsP   …A(E<Á.E	 Á>A6E<Ã5AE-ÅE<Å	E*Å'E<Å)E*Å*E<Å-	E9Å6E<Å8E9Å9E<ÚfpÚpagenosÚmaxpagesÚpasswordÚcachingÚcheck_extractablec              #   ó$  K  — t        |«      }t        |||¬«      }|j                  s-|rd|›�}	t        |	«      ‚d|›d�}
t        j                  |
«       t        | j                  |«      «      D ]  \  }}|r||vrŒ|–— |sŒ||dz   k  sŒ y  y ­w)N)rn   ro   z Text extraction is not allowed: zThe PDF z¸ contains a metadata field indicating that it should not allow text extraction. Ignoring this field and proceeding. Use the check_extractable if you want to raise an error in this caseé   )r   r	   Úis_extractabler   rO   ÚwarningÚ	enumeraterj   )rX   rk   rl   rm   rn   ro   rp   Úparserr   Ú	error_msgÚwarning_msgÚpagenoÚpages                r5   Ú	get_pageszPDFPage.get_pages˜   s²   è ø€ ô ˜2“ˆä˜&¨8¸WÔEˆð ×!Ò!Ù Ø>¸r¸fÐE�	Ü1°)Ó<Ð<ð ˜r˜fð %Að Að ô —‘˜KÔ(ä% c×&6Ñ&6°sÓ&;Ó<ò 	‰LˆF�DÙ˜F¨'Ñ1ØØŠJÚ˜H¨°©
Ó2Ùñ	ùs   ‚B BÂBÂBÚvaluec                 ó¼   — d}|€t         j                  d«       |S 	 t        d„ t        |«      D «       «      S # t        $ r t         j                  d«       |cY S w xY w)N)ç        r~   g      ƒ@g     Àˆ@zHMediaBox missing from /Page (and not inherited), defaulting to US Letterc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrZ   ©r   ©Ú.0Úvals     r5   ú	<genexpr>z*PDFPage._parse_mediabox.<locals>.<genexpr>È   ó   è ø€ ÒG°œh sŸmÑGùó   ‚z2Invalid MediaBox in /Page, defaulting to US Letter)rO   rt   r   r   r   )r4   r|   Ú	us_letters      r5   r+   zPDFPage._parse_mediabox½   sa   € Ø,ˆ	àˆ=Ü�K‰Kð*ôð Ðð	ÜÑG´xÀ³ÔGÓGÐGøäò 	Ü�K‰KÐLÔMØÒð	ús   �8 ¸ AÁAr,   c                 óŽ   — |€|S 	 t        d„ t        |«      D «       «      S # t        $ r t        j	                  d«       |cY S w xY w)Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrZ   r€   r�   s     r5   r„   z)PDFPage._parse_cropbox.<locals>.<genexpr>Ô   r…   r†   z0Invalid CropBox in /Page, defaulting to MediaBox)r   r   r   rO   rt   )r4   r|   r,   s      r5   r-   zPDFPage._parse_cropboxÎ   sG   € Øˆ=àˆOð	ÜÑG´xÀ³ÔGÓGÐGøäò 	Ü�K‰KÐJÔKØŠOð	ús   †! ¡ AÁAc                 óJ   — g }|�t        |«      }t        |t        «      s|g}|S rZ   )r   rE   Úlist)r4   r|   r0   s      r5   r/   zPDFPage._parse_contentsÚ   s,   € Ø ˆØÐÜ “ˆHÜ˜h¬Ô-Ø$˜:�Øˆr7   )Nr   Ú TF)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   Úobjectr\   r6   r:   r;   r   rJ   Ú__annotations__Úclassmethodr   rj   r   r   rF   Úboolr{   r   r   r+   r-   r‹   r/   © r7   r5   r   r      sJ  … ñð.)àð)ð ð)ð ð	)ð
 �T‰zð)ð 
ó)ð>V˜#ó Vò-Ð�x  C¡Ñ)ó ð ð; Kð ;°H¸YÑ4Gò ;ó ð;ðz ð *.ØØØØ"'ñ"àð"ð ˜3‘ $Ñ&ð"ð ð	"ð
 ð"ð ð"ð  ð"ð 
�)Ñ	ò"ó ð"ðH Sð ¨Tó ð"
 Cð 
°4ð 
¸Dó 
ð Sð ¨T°#©Yô r7   r   )$r_   ÚloggingÚcollections.abcr   r   Útypingr   r   r   Úpdfminerr   Úpdfminer.pdfdocumentr	   r
   r   Úpdfminer.pdfexceptionsr   r   Úpdfminer.pdfparserr   Úpdfminer.pdftypesr   r   r   r   Úpdfminer.psparserr   Úpdfminer.utilsr   r   Ú	getLoggerr�   rO   rQ   rN   r   r•   r7   r5   ú<module>r¡      sh   ðÛ Û ß /ß *Ñ *å ÷ñ ÷
 DÝ (ß IÓ IÝ !ß +à€g×Ñ˜Ó!€ñ �6‹{€Ù�G“€÷Gò Gr7   