
    SAiS                     |   S SK r S SKrS SKrS SKJrJr  S SKJr  S SKJ	r	J
r
JrJr  SSKJr  \" \R                   5      S:X  a  \R                   R#                  S5        S\S	\\   4S
 jrS\\   S	\ R*                  4S jrS\S\\\\	4      S	S4S jr\R                   SS 4S\\   S	S4S jjr\S:X  a  \" 5         gg)    N)defaultdictdeque)chain)AnyDefaultDictDictList   )PDFz--helpp_strreturnc                     SU ;   a8  [        [        U R                  S5      5      u  p[        [	        XS-   5      5      $ [        U 5      /$ )N-r
   )mapintsplitlistrange)r   startends      J/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pdfplumber/cli.pyparse_page_specr      s@    
e|ekk#./
E%q)**E
|    args_rawc                    [         R                  " S5      nUR                  SS[         R                  " S5      S9  UR	                  5       nUR                  SSSS	9  UR                  S
SSS	9  UR                  S/ SQSS9  UR                  SSS9  UR                  SSSS9  UR                  SSSS9  UR                  S[
        R                  S9  UR                  S[        S9  UR                  SS[        S9  UR                  S[        SS9  UR                  U 5      nUR                  b   [        [        UR                  6 5      Ul
        U$ )N
pdfplumberinfile?rb)nargstypez--structurezoWrite the structure tree as JSON.  All other arguments except --pages, --laparams, and --indent will be ignored
store_true)helpactionz--structure-textzWrite the structure tree as JSON including text contents.  All other arguments except --pages, --laparams, and --indent will be ignoredz--format)csvjsontextr%   )choicesdefaultz--types+)r    z--include-attrsz1Include *only* these object attributes in output.)r    r#   z--exclude-attrsz,Exclude these object attributes from output.z
--laparams)r!   z--precisionz--pagesz--indentz&Indent level for JSON pretty-printing.)r!   r#   )argparseArgumentParseradd_argumentFileTypeadd_mutually_exclusive_groupr&   loadsr   r   
parse_argspagesr   r   )r   parsergroupargss       r   r1   r1      sw   $$\2F
(2C2CD2IJ//1E	W	   
W	   
,CUS
	-
@   ;   4::6
C0
	?C
#K   X&Dzz%,-
Kr   pdfdatac                    [        S 5      nU R                   HI  nX#R                     nUR                   H(  nUR	                  S5      nUc  M  XF==   US   -  ss'   M*     MK     [        U5      nU(       ao  UR                  5       nSU;   a  UR                  US   5        UR	                  S5      n	U	c  MG  X)   nSU;   a  US    Vs/ s H  odU   PM	     snUS'   U(       a  Mn  g g s  snf )Nc                       [        [        5      $ )N)r   str r   r   <lambda>#add_text_to_mcids.<locals>.<lambda>J   s	    {3?Or   mcidr'   childrenpage_numbermcids)r   r2   r@   charsgetr   popleftextend)
r6   r7   page_contentspagetext_contentscr>   delpagenos
             r   add_text_to_mcidsrM   I   s    +67O+PM		%&6&67A55=D|1V9,	   	dA
YY[HHR
^$&>%-b=:<W+F+$-+FBvJ ! Gs   	C(c           
         [        U 5      n[        R                  " UR                  UR                  UR
                  S9 nUR                  (       a4  [        [        R                  " UR                  UR                  S95        GO;UR                  (       a@  UR                  n[        X#5        [        [        R                  " X1R                  SS95        OUR                  S:X  aJ  UR                  [         R"                  UR$                  UR&                  UR(                  UR*                  S9  OUR                  S:X  a,  UR                   H  n[        UR-                  SS	95        M     OTUR/                  [         R"                  UR$                  UR&                  UR(                  UR*                  UR                  S
9  S S S 5        g ! , (       d  f       g = f)N)r2   laparams)indentF)rP   ensure_asciir%   )	precisioninclude_attrsexclude_attrsr'   T)layout)rR   rS   rT   rP   )r1   r   openr   r2   rO   	structureprintr&   dumpsstructure_treerP   structure_textrM   formatto_csvsysstdouttypesrR   rS   rT   extract_textto_json)r   r5   r6   treerG   s        r   mainrd   _   sE   hD	$++TZZ$--	HC>>$**S//DE  %%Dc($**T++EJK[[E!JJ



.."00"00   [[F"		d''t'45 " KK



.."00"00{{  ' 
I	H	Hs    FG


G__main__)r+   r&   r^   collectionsr   r   	itertoolsr   typingr   r   r   r	   r6   r   lenargvappendr:   r   r   	Namespacer1   rM   rd   __name__r;   r   r   <module>rn      s      
 *  / / sxx=AHHOOH3 49 /c /x'9'9 /dG3 Gd4S>&: Gt G,  #xx| 49  @ zF r   