o
    g÷§iÔ  ã                   @   sP   d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ G dd„ deƒZ	dS )	zn
    This implementation of EventListener enables you to
    extract font-related information from a Document
é    N)ÚBeginPageEvent)ÚEvent)ÚEventListener)ÚFontc                   @   st   e Zd ZdZdd„ Zdefdd„Zdeddfd	d
„Zde	j
ee	je f fdd„Zde	j
ee	je f fdd„ZdS )ÚFontExtractionzr
    This implementation of EventListener enables you to
    extract font-related information from a Document
    c                 C   s   i | _ d| _d S )Néÿÿÿÿ)Ú_fonts_per_pageÚ_current_page©Úself© r   úU/home/ubuntu/.local/lib/python3.10/site-packages/borb/toolkit/text/font_extraction.pyÚ__init__   s   
zFontExtraction.__init__Úeventc                 C   sš   |  j d7  _ g | j| j < | ¡ }|d u rd S d|vs"t|d tƒs$d S d|d vs3t|d d tƒs5d S |d d  ¡ D ]\}}| j| j   |¡ q=d S )Né   Ú	Resourcesr   )r	   r   Úget_pageÚ
isinstanceÚdictÚitemsÚappend)r   r   ÚpageÚ_Úfr   r   r   Ú_begin_page"   s   ÿÿzFontExtraction._begin_pageÚreturnNc                 C   s   t |tƒr|  |¡ d S d S )N)r   r   r   )r   r   r   r   r   Ú_event_occurred7   s   
ÿzFontExtraction._event_occurredc                 C   sT   i }| j  ¡ D ] \}}||vrg ||< |D ]}| ¡ }|dur&||  |¡ qq|S )zF
        This function returns all font names used in the PDF
        N)r   r   Úget_font_namer   )r   ÚoutÚkÚvÚiÚ	font_namer   r   r   Úget_font_names?   s   €ýzFontExtraction.get_font_namesc                 C   s   | j S )zE
        This function returns all fonts used on a given PDF
        )r   r
   r   r   r   Ú	get_fontsM   s   zFontExtraction.get_fonts)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   ÚtypingÚDictÚintÚListÚstrr#   r   r$   r   r   r   r   r      s    	"r   )
r(   r)   Ú&borb.pdf.canvas.event.begin_page_eventr   Ú$borb.pdf.canvas.event.event_listenerr   r   Úborb.pdf.canvas.font.fontr   r   r   r   r   r   Ú<module>   s   