
    {-j                        U d dl Z d dlmZmZmZ ddlmZmZ dZe	e
d<   g dZ G d d	e          Zd
eeef         dedee	e	e	f         fdZeeedd
eeef         de	dedede	defdZed eeddede	dede	dedee	         defdZdS )    N)AnyOptionalTuple   )PDF_MIN_RENDER_SCALEPDF_RENDER_SCALEi
DEFAULT_MAX_IMAGE_PIXELS)r	   PDFRenderSizeErrorestimate_pdf_render_pixels'get_pdf_render_scale_within_pixel_limitrender_pdf_page_to_numpyc                   ~     e Zd ZdZdddedddedee         dee         dee         ded	ee         d
df fdZ xZ	S )r
   zDRaised when a PDF page cannot fit the pixel budget at minimum scale.Nwidthheightpixel_count
max_pixels
page_indexmessager   r   r   r   r   returnc                    t                                          |           || _        || _        || _        || _        || _        d S )N)super__init__r   r   r   r   r   )selfr   r   r   r   r   r   	__class__s          e/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/inference/utils/pdf_rendering.pyr   zPDFRenderSizeError.__init__"   sE     	!!!
&$$    )
__name__
__module____qualname____doc__r	   strr   intr   __classcell__)r   s   @r   r
   r
      s        NN  $ $%)2$(% % %% }	%
 % c]% % SM% 
% % % % % % % % % %r   r
   	page_sizescaler   c                     t          | d                   t          | d                   }}t          t          j        ||z                      }t          t          j        ||z                      }||||z  fS )Nr      )floatr#   mathceil)r%   r&   w_pdfh_pdfw_pxh_pxs         r   r   r   4   sl     1&&il(;(;5Ety''((Dty''((Dtd{""r   )requested_scale	min_scaler   r   r0   r1   r   c                   t          | d                   t          | d                   }}|dk    s|dk    rt          d| d| d| d          |dk    rt          d| d          |dk    rt          d| d          |dk    rt          d	| d          t          | |          \  }}}||k    r|S t          | |          \  }}}	|	|k    r>t          | |          \  }
}}d| d
|
 d| d| d| d| d}t          ||
||||          t	          |t          j        |||z  z                      }|}t          d          D ])}||z   dz  }t          | |          \  }}}||k    r|}'|}*|S )Nr   r(   zPage z: Invalid PDF page size width=z	, height=.'PDF render scale must be positive, got z/Minimum PDF render scale must be positive, got z+Maximum image pixels must be positive, got z: Estimated render size width=z (pixel count z) at minimum PDF render scale z would exceed maximum allowed r          )r)   
ValueErrorr   r
   minr*   sqrtrange)r%   r   r0   r1   r   r,   r-   _requested_pixels
min_pixelsr.   r/   estmsgupperlowerr&   pixelss                     r   r   r   =   s5    1&&il(;(;5EzzUaZZVJVVeVVeVVV
 
 	
 !U?UUUVVVA~~W9WWWXXXQTzTTTUUU7	?SSAq
:%%1)YGGAq*J4Y	JJdC-J - -d - -T - -- -?H- -)- - - 	
 !!!
 
 
 	
 :+G!H!HIIEE2YY  !#1)UCC1fZEEEELr   )r0   rotationr1   r   pagerC   c                    ||dk    rt          d| d          |}n&t          |                                 ||||          }|                     ||                                          S )Nr   r4   r3   )r   r0   r1   r   )r&   rC   )r7   r   get_sizerenderto_numpy)rD   r   r0   rC   r1   r   r&   s          r   r   r   r   s     aL/LLL    7MMOO!+!
 
 
 ;;UX;66??AAAr   )r*   typingr   r   r   utils.flagsr   r   r	   r#   __annotations____all__	Exceptionr
   r)   r   r   r    r   r   <module>rO      s    ' ' ' ' ' ' ' ' ' ' A A A A A A A A + # + + +  % % % % % % % %*#UE\"#+0#
3S=# # # # .+.2 2 2UE\"2 2 	2
 2 2 2 2 2 2r .+ 8B B B
B B 	B
 B B B 	B B B B B Br   