o
    bCcj]  ã                   @   sH   d dl Z d dlZd dlmZ d dlmZ e d¡Z	G dd„ dej
ƒZdS )é    NÚpypdfium2_clic                       sb   e Zd Zd‡ fdd„	Z‡ fdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Z‡  ZS )ÚPdfSysfontListenerNc                    s,   t  d¡ tƒ  |¡ t  d| j› ¡ d S )Nz Building sysfontinfo instance...z&fontinfo default interface version is )ÚloggerÚdebugÚsuperÚ__init__Úversion)ÚselfÚdefault©Ú	__class__© úL/home/thesage/.local/lib/python3.10/site-packages/pypdfium2_cli/_sysfonts.pyr      s   
zPdfSysfontListener.__init__c                    s   t  d¡ tƒ j|i |¤ŽS )NzInstalling sysfontinfo...)r   r   r   Úsetup)r	   ÚargsÚkwargsr   r   r   r      s   
zPdfSysfontListener.setupc                 C   sŠ   t  |t j¡j}t d|› dt|ƒ› dtj 	|¡›dt 
|¡j›d|›d¡ | j | j||||||¡}	|	p:|	› d}
t d|
› ¡ |	S )	Nzfontinfo::MapFont:in (weight=z
, bItalic=z
, charset=z, pitch_family=z, face=ú)z  # unknown/internalzfontinfo::MapFont:out )ÚctypesÚcastÚc_char_pÚvaluer   r   ÚboolÚpdfium_iÚCharsetToStrÚgetÚPdfFontPitchFamilyFlagsÚnamer
   ÚMapFont)r	   Ú_ÚweightÚbItalicÚcharsetÚpitch_familyÚfaceÚ_ignoredÚ	face_bstrÚoutÚvis_outr   r   r   r      s   >zPdfSysfontListener.MapFontc                 C   s2   t  |t j¡j}t d|f› ¡ | j | j|¡S )Nzfontinfo::GetFont )r   r   r   r   r   r   r
   ÚGetFont)r	   r   r#   r%   r   r   r   r(   !   s   zPdfSysfontListener.GetFontc                 C   sT   t  d|||f› ¡ | j | j|||¡}|dkr(t  dt ||d ¡j› ¡ |S )Nzfontinfo::GetFaceName r   z-> é   )r   r   r
   ÚGetFaceNamer   Ú
get_bufferÚraw)r	   r   ÚhFontÚbufferÚbuf_sizer&   r   r   r   r*   &   s
   zPdfSysfontListener.GetFaceNamec                 C   ó"   t  d|f› ¡ | j | j|¡S )Nzfontinfo::EnumFonts )r   r   r
   Ú	EnumFonts)r	   r   ÚpMapperr   r   r   r1   -   ó   zPdfSysfontListener.EnumFontsc                 C   s.   t  d||||f› ¡ | j | j||||¡S )Nzfontinfo::GetFontData )r   r   r
   ÚGetFontData)r	   r   r-   Útabler.   r/   r   r   r   r4   1   s   zPdfSysfontListener.GetFontDatac                 C   s>   t  d|f› ¡ | j | j|¡}t  dtj |¡›¡ |S )Nzfontinfo::GetFontCharset z-> charset: )r   r   r
   ÚGetFontCharsetr   r   r   )r	   r   r-   r&   r   r   r   r6   5   s   z!PdfSysfontListener.GetFontCharsetc                 C   r0   )Nzfontinfo::DeleteFont )r   r   r
   Ú
DeleteFont)r	   r   r-   r   r   r   r7   <   r3   zPdfSysfontListener.DeleteFont)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r(   r*   r1   r4   r6   r7   Ú__classcell__r   r   r   r   r      s    
r   )r   ÚloggingÚpypdfium2._helpersÚ_helpersÚpdfiumÚpypdfium2.internalÚinternalr   Ú	getLoggerr   ÚPdfSysfontBaser   r   r   r   r   Ú<module>   s   
