
    Eh
                         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  G d de      Zy)    )	Container)Page)decode_text)	PDFParser)PDFDocument)PDFPage)PDFResourceManagerPDFPageInterpreter)LAParams)PDFPageAggregator)	PSLiteralc                   |    e Zd Zej                  dgz   ZddZed        Zd Ze	d        Z
d Zd Zd	 Ze	d
        Zy)PDF_pagesNc                    |d k(  rd n
t        di || _        || _        || _        || _        t               }t        t        |            | _        i | _	        | j                  j                  D ]  }| j                  j                  |        | j                  j                         D ]  \  }}t        |d      r|j                         }t        |      t         k(  r't!        t#        t$        |            | j                  |<   [t'        |t(              r#t%        |j*                        | j                  |<   t%        |      | j                  |<    t-        || j                        | _        t1        || j.                        | _        y )Nresolve)laparams )r   r   streampages_to_parse	precisionr	   r   r   docmetadatainfoupdateitemshasattrr   typelistmapr   
isinstancer   namer   devicer
   interpreter)	selfr   pagesr   r   rsrcmgrr   kvs	            O/var/www/html/bid_assistant/venv/lib/python3.12/site-packages/pdfplumber/pdf.py__init__zPDF.__init__   s-    (D 0h6J6J#"$&y01HHMM 	'DMM  &	'MM'') 	2DAqq)$IIKAw$#'K(;#<a Ay)#.qvv#6a #.q>a 	2 ($--H-gt{{C    c                 (     | t        |d      fi |S )Nrb)open)clspathkwargss      r*   r/   zPDF.open&   s    4d#.v..r,   c                 l    | j                   j                  |       | j                  j                         S N)r$   process_pager#   
get_result)r%   pages     r*   r5   zPDF.process_page*   s)    %%d+{{%%''r,   c                 d   t        | d      r| j                  S d}| j                  }g | _        t        t	        j
                  | j                              D ]M  \  }}|dz   }|d k7  r||vrt        | |||      }| j                  j                  |       ||j                  z  }O | j                  S )Nr   r      )page_numberinitial_doctop)
r   r   r   	enumerater   create_pagesr   r   appendheight)r%   doctopppir7   r:   ps          r*   r&   z	PDF.pages.   s    4"4;;$6   !5!5dhh!?@ 	GAtA#KTzk3XT4[PAKKq!ahhF	 {{r,   c                 8    | j                   j                          y r4   )r   closer%   s    r*   rE   z	PDF.close=   s    r,   c                     | S r4   r   rF   s    r*   	__enter__zPDF.__enter__@   s    r,   c                 D    | j                          | j                          y r4   )flush_cacherE   )r%   r   value	tracebacks       r*   __exit__zPDF.__exit__C   s    

r,   c                    t        | d      r| j                  S i }| j                  D ]F  }|j                  j	                         D ]'  }|j                  |g       |j                  |   z   ||<   ) H || _        | j                  S )N_objects)r   rO   r&   objectskeysget)r%   all_objectsrC   kinds       r*   rP   zPDF.objectsG   s    4$T]]&: 	PA		( P$/OOD"$=		$$OD!P	P $}}r,   )NNgMbP?)__name__
__module____qualname__r   cached_propertiesr+   classmethodr/   r5   propertyr&   rE   rH   rM   rP   r   r,   r*   r   r      sk    !33lBD, / /(    r,   r   N)pdfplumber.containerr   pdfplumber.pager   pdfplumber.utilsr   pdfminer.pdfparserr   pdfminer.pdfdocumentr   pdfminer.pdfpager   pdfminer.pdfinterpr	   r
   pdfminer.layoutr   pdfminer.converterr   pdfminer.psparserr   r   r   r,   r*   <module>re      s1    *   ( ( , $ E $ 0 'B) Br,   