Ë
    ul�jÀ
  ã                   ó  — d dl 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mZ  e j                   d«      Z e ed«      «      Z ed	d
«      ZdZd„ Zd„ Zerdd„Zd„ Zyej3                  d«       dd„Zd„ Zy)é    N)Ú	addressof)Ú
namedtuple)Ú	find_spec)ÚLazy)Ú	add_inputÚ	get_inputÚpagenums_rangerÚpypdfium2_cliÚtabulateÚ
FontHolder)ÚobjÚpageszïFont objects are compared by memory address, so the same font name may occur multiple times
in different configurations (e.g. differing weights, or even hidden differences like /Subtype).
This is intentional. Nameless fonts may also occur.c                 ó   — t        | d¬«       y )NT)r   )r   )Úparsers    úI/var/www/html/pp/venv/lib/python3.12/site-packages/pypdfium2_cli/fonts.pyÚattachr      s   € Üˆf˜DÖ!ó    c           	   #   ó@  K  — | j                  «       D ]‡  }|j                  }|j                  «       }|j                  rdnd}dj	                  d„ t        t        |j                  «      «      D «       «      }||j                  «       |j                  «       ||f–— Œ‰ y ­w)NÚyesÚnoz, c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Ústr)Ú.0Úps     r   ú	<genexpr>z!_iterate_fonts.<locals>.<genexpr>%   s   è ø€ ÒX¨œc !ŸfÑXùs   ‚)
Úvaluesr   Úget_base_nameÚis_embeddedÚjoinr	   Úsortedr   Úget_family_nameÚ
get_weight)Ú	all_fontsÚ
fontholderÚfontobjÚ	base_nameÚembeddedÚ	pages_strs         r   Ú_iterate_fontsr*       sŽ   è ø€ Ø×&Ñ&Ó(ò ^ˆ
Ø—.‘.ˆØ×)Ñ)Ó+ˆ	Ø#×/Ò/‘5°TˆØ—I‘IÑX¬o¼fÀZ×EUÑEUÓ>VÓ.WÔXÓXˆ	Ø˜×0Ñ0Ó2°G×4FÑ4FÓ4HÈ(ÐT]Ð]Ó]ñ^ùs   ‚BBc           	      óf   — t        |«      }|sy t        t        j                  || dd|¬«      «       y )NÚleftÚpretty)ÚheadersÚstralignÚtablefmtÚmaxcolwidths)ÚlistÚprintr   r   )r.   Ú
table_iterr1   Ú
table_lists       r   Ú_show_tabler6   )   s-   € Ü˜*Ó%ˆ
ÙØÜŒd�m‰m˜J°À&ÐS[ÐjvÔwÕxr   z7You may want to install `tabulate` for prettier output.c                 ó>   — t        | «       |D ]  }t        |«       Œ y r   )r3   )r.   r4   r1   Úentrys       r   r6   r6   0   s   € ÜˆgŒØò 	ˆEÜ�%�Lñ	r   c                 óÜ  — t        | «      }t        j                  d«       i }| j                  D ]�  }||   }|j	                  t
        j                  f¬«      D ]r  }|j                  «       }t        |j                  j                  «      }||v r||   }nt        |t        «       «      }|||<   |j                  j                  |dz   «       Œt ŒŸ d}	g d¢}
t        |«      }t        |	||
«       y )NzGathering fonts from pages...)Úfilteré   )z	Base namezFamily nameÚWeightÚEmbÚPages)é   r?   NNéP   )r   ÚloggerÚdebugr   Úget_objectsÚpdfium_cÚFPDF_PAGEOBJ_TEXTÚget_fontr   ÚrawÚcontentsr   ÚsetÚaddr*   r6   )ÚargsÚpdfr$   ÚiÚpageÚtextobjr&   Úaddrr%   r.   r1   Ú
fonts_iters               r   ÚmainrR   6   sæ   € Ü
�D‹/€Cô
 ‡L�LÐ0Ô1Ø€IØ�Z‰Zò 
&ˆØ�1‰vˆØ×'Ñ'´×0JÑ0JÐ/LÐ'ÓMò 	&ˆGØ×&Ñ&Ó(ˆGÜ˜WŸ[™[×1Ñ1Ó2ˆDØ�yÑ Ø& t™_‘
ä'¨´³Ó7�
Ø",�	˜$‘Ø×Ñ× Ñ   1¡Õ%ñ	&ð
&ð E€GÚ+€LÜ 	Ó*€JÜ�˜ \Õ2r   r   )ÚloggingÚctypesr   Úcollectionsr   Úimportlib.utilr   Úpypdfium2.rawrG   rD   Úpypdfium2._lazyr   Úpypdfium2_cli._parsersr   r   r	   Ú	getLoggerrA   ÚboolÚHAVE_TABULATEr   ÚPARSER_DESCr   r*   r6   ÚinforR   © r   r   ú<module>r`      sŽ   ðó Ý Ý "Ý $Ý  Ý  ÷ñ ð 
ˆ×	Ñ	˜?Ó	+€Ù‘Y˜zÓ*Ó+€á˜Ð&6Ó7€
ð€ò"ò^ñ óyó3ð ‡K�KÐIÔJóó3r   