
    1 j
                     
   S SK r S SKJr  S SKJr  S SKJr  S SKJr	  S SK
Jr  S SKJrJrJr  \ R                   " S5      r\" \" S5      5      r\" S	S
5      rSrS rS r\(       a  SS jrO\R3                  S5        SS jrS rg)    N)	addressof)
namedtuple)	find_spec)Lazy)	add_input	get_inputpagenums_rangerpypdfium2_clitabulate
FontHolder)objpageszFont 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                     [        U SS9  g )NT)r   )r   )parsers    d/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pypdfium2_cli/fonts.pyattachr      s    fD!    c           	   #   J  #    U R                  5        H  nUR                  nUR                  5       nUR                  (       a  SOSnSR	                  S [        [        UR                  5      5       5       5      nX2R                  5       UR                  5       XE4v   M     g 7f)Nyesnoz, c              3   8   #    U  H  n[        U5      v   M     g 7fN)str).0ps     r   	<genexpr>!_iterate_fonts.<locals>.<genexpr>%   s     X.Wc!ff.Ws   )
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     &&(
..))+	#//5TIIXofZEUEU>V.WXX	002G4F4F4H(]] )s   B!B#c           
      j    [        U5      nU(       d  g [        [        R                  " X0SSUS95        g )Nleftpretty)headersstraligntablefmtmaxcolwidths)listprintr   r   )r/   
table_iterr2   
table_lists       r   _show_tabler7   )   s+    *%
dmmJ&S[jvwxr   z7You may want to install `tabulate` for prettier output.c                 B    [        U 5        U H  n[        U5        M     g r   )r4   )r/   r5   r2   entrys       r   r7   r7   0   s    gE%L  r   c                    [        U 5      n[        R                  S5        0 nU R                   H  nX   nUR	                  [
        R                  4S9 Hr  nUR                  5       n[        UR                  R                  5      nXr;   a  X'   nO[        U[        5       5      nXU'   UR                  R                  US-   5        Mt     M     Sn	/ SQn
[        U5      n[        XU
5        g )NzGathering fonts from pages...)filter   )z	Base namezFamily nameWeightEmbPages)   r@   NNP   )r   loggerdebugr   get_objectspdfium_cFPDF_PAGEOBJ_TEXTget_fontr   rawcontentsr   setaddr+   r7   )argspdfr%   ipagetextobjr'   addrr&   r/   r2   
fonts_iters               r   mainrS   6   s    
D/C
 LL01IZZv''0J0J/L'MG&&(GW[[112D &_
'7
",$  1% N  EG+L	*J\2r   r   )loggingctypesr   collectionsr   importlib.utilr   pypdfium2.rawrH   rE   pypdfium2._lazyr   pypdfium2_cli._parsersr   r   r	   	getLoggerrB   boolHAVE_TABULATEr   PARSER_DESCr   r+   r7   inforS    r   r   <module>ra      s      " $      
		?	+Yz*+&67
"^ y KKIJ3r   