
    Ei
                        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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                     t        | d       y )NT)r   )r   )parsers    K/home/agent/.friday_env/lib/python3.12/site-packages/pypdfium2_cli/fonts.pyattachr      s    fD!    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Xs   )
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(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-    *%
dmmJ&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?   NNP   )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
 LL01IZZ 
&1v''0J0J/L'M 	&G&&(GW[[112D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      " $      
		?	+Yz*+&67
"^ y3 KKIJ3r   