
    Mi                         S SK r S SKJr  S SKJrJrJrJr  S SKJ	r	  SSSSS	S
S
S.r
SrSS0rS\S\4S jrSS\S\4S jjrS\S\4S jrS\S\4S jrS\S\4S jrSS\S\4S jjrSS\	S\4S jjrg)    N)List)LINE_BREAKSSPACESTABSWHITESPACE_CHARS)Pageffffifflfiflst)u   ﬀu   ﬃu   ﬄu   ﬁu   ﬂu   ﬆu   ﬅz

textreturnc                     [         R                  5        H  u  pU R                  X5      n M     [        U 5      n [	        U 5      n [        U 5      n U $ N)REPLACEMENTSitemsreplacereplace_special_charsreplace_control_charsreplace_ligatures)r   oldnews      p/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/pdftext/postprocessing.pypostprocess_textr      sH     &&(||C% ) &D &DT"DK    c                 `   U(       a  U R                  [        S5      n U $ [        U 5      S:X  a   U $ SnSn[        [        U 5      S-
  5       H[  nX   [        :X  a  SnM  U(       a:  X   [        ;   a  M(  X   [
        ;   a  UR                  5       S-   nSnMK  X U   -  nMT  X U   -  nM]     Un U $ )Nz-
r    F   Tr   )r   HYPHEN_CHARlenranger   r   rstrip)r   keep_hyphensnew_textfound_hyphenis        r   handle_hyphensr+      s    ||K/( K' 
Ta$ K! s4y1}%Aw+%#7k)W&'047H#(LQ'HG# & Kr   c                     [          H  nU R                  US5      n M     [         H  nU R                  US5      n M     [         H  nU R                  US5      n M     U $ )N r   	)r   r   r   r   )r   items     r   r   r   8   sU    ||D#& ||D$' ||D$' Kr   c                 2    SR                  S U  5       5      $ )Nr!   c              3      #    U  H:  n[         R                  " U5      S    S:w  d  U[        :X  d  U[        ;   d  M6  Uv   M<     g7f)r   CN)unicodedatacategoryr#   r   ).0chars     r   	<genexpr>(replace_control_chars.<locals>.<genexpr>C   sF       GDD[-A-A$-G-Jc-QUY]hUhlp  uE  mE44Ds
   5A	A)join)r   s    r   r   r   B   s#    77  GD  G  G  Gr   c                 b    [         R                  5        H  u  pU R                  X5      n M     U $ r   )	LIGATURESr   r   )r   ligaturereplacements      r   r   r   F   s)    !*!2||H2 "3Kr   blocksc                    0 nU  H6  n[        US   S   U-  5      U-  nXB;  a  / X$'   X$   R                  U5        M8     / n[        UR                  5       5       H!  u  pg[        US S9nUR	                  U5        M#     U$ )Nbboxr"   c                     U S   S   $ )Nr@   r    )xs    r   <lambda>sort_blocks.<locals>.<lambda>Y   s    1V9Q<r   )key)roundappendsortedr   extend)	r>   	tolerancevertical_groupsblock	group_keysorted_page_blocks_groupsorted_groups	            r   sort_blocksrS   L   s    O%-*Y67)C	+)+O&"))%0	  ?0023e)?@!!,/ 4
 r   pagec                    SnU(       a  [        U S   5      U S'   U S    H_  nSnUS    H:  nSnUS    H
  nXxS   -  nM     [        U5      nUR                  5       S-   nXW-  nM<     UR                  5       S-   nX5-  nMa     [        X2S9nU$ )	Nr!   r>   linesspansr   r   z

)r'   )rS   r   r&   r+   )	rT   sorthyphensr   rM   
block_textline	line_textspans	            r   
merge_textr^   _   s    D$T(^4Xh
'NDIW&\)	 &(3I!((*T1I#J #  &&(61
   $5DKr   )F)g      ?)FF)r3   typingr   pdftext.pdf.utilsr   r   r   r   pdftext.schemar   r;   r#   r   strr   r+   r   r   r   rS   r^   rB   r   r   <module>rc      s      I I  	 
D
3 3  S 2  G G GC C   &T  r   