
    ϔ 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ne                    d           ddZd ZdS )    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           d S )NT)r   )r   )parsers    gC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pypdfium2_cli/fonts.pyattachr      s    fD!!!!!!    c           	   #   Z  K   |                                  D ]}|j        }|                                }|j        rdnd}d                    d t          t          |j                            D                       }||                                |	                                ||fV  d S )Nyesnoz, c              3   4   K   | ]}t          |          V  d S N)str).0ps     r   	<genexpr>z!_iterate_fonts.<locals>.<genexpr>%   s(      XXc!ffXXXXXXr   )
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      &&(( ^ ^
.))++	#/955TIIXXofZEU>V>V.W.WXXXXX	0022G4F4F4H4H(T]]]]]]^ ^r   c           	      x    t          |          }|sd S t          t          j        || dd|                     d S )Nleftpretty)headersstraligntablefmtmaxcolwidths)listprintr   r   )r.   
table_iterr1   
table_lists       r   _show_tabler6   )   sG    *%%
 	FdmJ&S[jvwwwxxxxxr   z7You may want to install `tabulate` for prettier output.c                 L    t          |            |D ]}t          |           d S r   )r3   )r.   r4   r1   entrys       r   r6   r6   0   s3    g 	 	E%LLLL	 	r   c                    t          |           }t                              d           i }| j        D ]}||         }|                    t
          j        f          D ]z}|                                }t          |j	        j
                  }||v r	||         }n!t          |t                                }|||<   |j                            |dz              {d}	g d}
t          |          }t          |	||
           d S )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11IZ 
& 
&1v''0J/L'MM 	& 	&G&&((GW[122Dy  -&t_

'77
",	$  1%%%%	& EG+++L	**J\2222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`      sm          " " " " " " $ $ $ $ $ $                                  
	?	+	+YYz**++Z&677
" " "^ ^ ^  y y y y y KKIJJJ   3 3 3 3 3r   