
    eҳgx                     :   d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
mZ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 d dlmZ d d	lmZ d d
lmZ ddl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) ddl*m+Z+  ej,        e-          Z. G d de!          Z/dS )    N)BufferedReaderBytesIO)TracebackType)AnyDictListLiteralOptionalTupleTypeUnion)LAParams)PDFDocument)PDFResourceManager)PDFPage)	PDFParser)PSException   )T_num
T_obj_list)	Container)Page)T_repair_setting_repairPDFStructTreeStructTreeMissing)resolve_and_decodec                      e Zd ZU ej        dgz   Zee         ed<   	 	 	 	 	 	 	 	 d%dee	e
f         dedeej                 d	eeee         ee         f                  d
eeeef                  dee         dedeed                  defdZe	 	 	 	 	 	 	 	 	 d&deeej        e	e
f         d	eeee         ee         f                  d
eeeef                  dee         dedeed                  dedeeeej        f                  dededd fd            Zd'dZd(dZdeee                  dee         dee         ddfdZedee         fd            Z edeee!f         fd            Z"edeeeef                  fd             Z#edeeeef                  fd!            Z$edeeeef                  fd"            Z%d)d#eee                  deeef         fd$Z&dS )*PDF_pagescached_propertiesFNTstreamstream_is_externalpathpageslaparamspasswordstrict_metadataunicode_norm)NFCNFKCNFDNFKDraise_unicode_errorsc
           
      ^   || _         || _        || _        || _        |d nt	          di || _        || _        || _        |	| _        t          t          |          |pd          | _        t                      | _        i | _        | j        j        D ]}
| j                            |
           | j                                        D ]d\  }}	 t%          |          | j        |<   # t&          $ r:}|r t(                              d| dt-          |                      Y d }~]d }~ww xY wd S )N )r(   z[WARNING] Metadata key "z(" could not be parsed due to exception:  )r#   r$   r%   pages_to_parser   r'   r(   r*   r/   r   r   docr   rsrcmgrmetadatainfoupdateitemsr   	Exceptionloggerwarningstr)selfr#   r$   r%   r&   r'   r(   r)   r*   r/   r7   kves                 L/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pdfplumber/pdf.py__init__zPDF.__init__   s}    "4	# ( 0h6J6J6J6J ($8!y008>rJJJ)++HM 	' 	'DM  &&&&M'')) 	 	DAq#5a#8#8a   	 	 	"  +q + +"%a&&+ +       		 	s   C&&
D*00D%%D*default
path_or_fprepairgs_pathrepair_settingreturnc                 F   |rt          ||||	          }d}d }nNt          |t          t          j        f          r't          |d          }d}t          j        |          }n|}d}d }	  | |||||||||
	  	        S # t          $ r |s|                                  w xY w)N)r(   rG   settingFrbT)r%   r&   r'   r(   r)   r*   r$   r/   )r   
isinstancer=   pathlibPathopenr   close)clsrE   r&   r'   r(   r)   r*   rF   rG   rH   r/   r#   r$   r%   s                 rB   rP   zPDF.openE   s    "  	Xw  F "' DD
S',$788 	*d++F!&<
++DDF!%D	3!! /)#5%9
 
 
 
  	 	 	% 	s   *A> >"B c                     |                                   | j        D ]}|                                 | j        s| j                                         d S d S N)flush_cacher&   rQ   r$   r#   )r>   pages     rB   rQ   z	PDF.closey   sc    J 	 	DJJLLLL& 	 K	  	     c                     | S rT   r2   r>   s    rB   	__enter__zPDF.__enter__   s    rW   tvalue	tracebackc                 .    |                                   d S rT   )rQ   )r>   r[   r\   r]   s       rB   __exit__zPDF.__exit__   s     	

rW   c                 <   t          | d          r| j        S d}| j        }g | _        t          t	          j        | j                            D ]H\  }}|dz   }|||vrt          | |||          }| j                            |           ||j	        z  }I| j        S )Nr!   r   r   )page_numberinitial_doctop)
hasattrr!   r3   	enumerater   create_pagesr4   r   appendheight)r>   doctopppirV   ra   ps          rB   r&   z	PDF.pages   s    4"" 	; "$ !5dh!?!?@@ 	 	GAta%K~+R"7"7T4[PPPAKq!!!ahFF{rW   c                     t          | d          r| j        S i }| j        D ]E}|j                                        D ])}|                    |g           |j        |         z   ||<   *F|| _        | j        S )N_objects)rc   rm   r&   objectskeysget)r>   all_objectsrk   kinds       rB   rn   zPDF.objects   s    4$$ 	!= -/ 	P 	PA	(( P P$/OOD"$=$=	$$OD!!P/:}rW   c                 Z    d | j         D             }t          t          j        |           S )Nc              3   $   K   | ]}|j         V  d S rT   )annots.0rk   s     rB   	<genexpr>zPDF.annots.<locals>.<genexpr>   s$      ,,Aqx,,,,,,rW   r&   list	itertoolschainr>   gens     rB   ru   z
PDF.annots   s,    ,,,,,IOS)***rW   c                 Z    d | j         D             }t          t          j        |           S )Nc              3   $   K   | ]}|j         V  d S rT   )
hyperlinksrv   s     rB   rx   z!PDF.hyperlinks.<locals>.<genexpr>   s$      00q|000000rW   ry   r}   s     rB   r   zPDF.hyperlinks   s,    00TZ000IOS)***rW   c                 Z    	 d t          |           D             S # t          $ r g cY S w xY w)z+Return the structure tree for the document.c                 6    g | ]}|                                 S r2   to_dict)rw   elems     rB   
<listcomp>z&PDF.structure_tree.<locals>.<listcomp>   s     CCCtDLLNNCCCrW   r   rY   s    rB   structure_treezPDF.structure_tree   sG    	CC}T/B/BCCCC  	 	 	III	s    **object_typesc                 :    | j         fd| j        D             dS )Nc                 :    g | ]}|                               S r2   r   )rw   rV   r   s     rB   r   zPDF.to_dict.<locals>.<listcomp>   s%    HHHTdll<00HHHrW   r6   r&   r   )r>   r   s    `rB   r   zPDF.to_dict   s0    HHHHTZHHH
 
 	
rW   )FNNNNFNT)	NNNFNFNrD   T)rI   N)rI   r    rT   )'__name__
__module____qualname__r   r"   r   r=   __annotations__r   r   r   boolr
   rN   rO   intr   r   r   r	   rC   classmethodr   rP   rQ   rZ   r   BaseExceptionr   r_   propertyr   r&   r   rn   ru   r   r   r   r2   rW   rB   r    r       s        #,#>(#KtCyKKK
 $)'+8<-1"& %HL%)' 'ng-.' !' w|$	'
 d3is345' 4S>*' 3-' ' w'CDE' #' ' ' 'R  9=-1"& %HL6:+4%)1 1#w|^WDE1 d3is3451 4S>*	1
 3-1 1 w'CDE1 1 %W\ 1231 )1 #1 
1 1 1 [1f          D'( & M*	
 
    tDz    X  c:o.    X +T#s(^, + + + X+ +Dc3h0 + + + X+ T#s(^ 4    X
 
HT#Y$7 
4S> 
 
 
 
 
 
rW   r    )0r{   loggingrN   ior   r   typesr   typingr   r   r   r	   r
   r   r   r   pdfminer.layoutr   pdfminer.pdfdocumentr   pdfminer.pdfinterpr   pdfminer.pdfpager   pdfminer.pdfparserr   pdfminer.psparserr   _typingr   r   	containerr   rV   r   rF   r   r   	structurer   r   utilsr   	getLoggerr   r;   r    r2   rW   rB   <module>r      s         & & & & & & & &       I I I I I I I I I I I I I I I I I I I I $ $ $ $ $ $ , , , , , , 1 1 1 1 1 1 $ $ $ $ $ $ ( ( ( ( ( ( ) ) ) ) ) ) & & & & & & & &                   - - - - - - - - 7 7 7 7 7 7 7 7 % % % % % %		8	$	$f
 f
 f
 f
 f
) f
 f
 f
 f
 f
rW   