
    kh%                     h    d Z ddlZddlmZ  G d d      Zej
                  Zd Zedk(  r e        yy)	z$Entry for ``pdf2docx`` command line.    N   )	Converterc                       e Zd ZdZe	 	 	 	 	 ddedededededefd	       Ze	 	 	 	 	 ddeded
edededefd       Z	eddedededefd       Z
ed        Zy)PDF2DOCXz(Command line interface for ``pdf2docx``.Npdf_file	docx_filepasswordstartendpagesc                    t        |t              r|g}|j                  dd      s*t        |dz
  d      }|r|dz  }|r|D cg c]  }|dz
  	 }}t	        | |      }	  |j
                  ||||fi | |j                          yc c}w # t        $ r}	t        j                  |	       Y d}	~	9d}	~	ww xY w# |j                          w xY w)a  Convert pdf file to docx file.

        Args:
            pdf_file (str) : PDF filename to read from.
            docx_file (str, optional): docx filename to write to. Defaults to None.
            password (str): Password for encrypted pdf. Default to None if not encrypted.
            start (int, optional): First page to process. Defaults to 0.
            end (int, optional): Last page to process. Defaults to None.
            pages (list, optional): Range of pages, e.g. --pages=1,3,5. Defaults to None.
            kwargs (dict) : Configuration parameters.

        .. note::
            Refer to :py:meth:`~pdf2docx.converter.Converter.convert` for detailed description
            on above arguments.
        zero_based_indexTr   r   N)

isinstanceintgetmaxr   convert	Exceptionloggingerrorclose)
r   r   r	   r
   r   r   kwargsicves
             I/var/www/teggl/fontify/venv/lib/python3.12/site-packages/pdf2docx/main.pyr   zPDF2DOCX.convert	   s    0 eS!E75zz,d3aOEC1HCE2qqs2e2x*	BJJy%e>v> HHJ 3
  	MM!	 HHJs0   BB	 		B1B,'B4 ,B11B4 4Cpage	debug_pdflayout_filec                     |j                  dd      st        |dz
  d      }t        | |      } |j                  ||||fi | |j	                          y)a  Convert one PDF page and plot layout information for debugging.

        Args:
            pdf_file (str) : PDF filename to read from.
            password (str): Password for encrypted pdf. Default to None if not encrypted.
            page (int, optional): Page index to convert.
            docx_file (str, optional): docx filename to write to.
            debug_pdf (str, optional): Filename for new pdf storing layout information.
                Defaults to same name with pdf file.
            layout_file (str, optional): Filename for new json file storing parsed layout data.
                Defaults to ``layout.json``.
            kwargs (dict)  : Configuration parameters.
        r   Tr   r   N)r   r   r   
debug_pager   )r   r	   r   r   r   r   r   r   s           r   debugzPDF2DOCX.debug0   sR    , zz,d3tAvq>D x*dIy+HH

    c                    t        |t              r|g}|j                  dd      s*t        |dz
  d      }|r|dz  }|r|D cg c]  }|dz
  	 }}t	        | |      }	  |j
                  |||fi |}|j                          |S c c}w # t        $ r!}	g }t        j                  |	       Y d}	~	<d}	~	ww xY w# |j                          w xY w)a  Extract table content from pdf pages.

        Args:
            pdf_file (str) : PDF filename to read from.
            password (str): Password for encrypted pdf. Default to None if not encrypted.
            start (int, optional): First page to process. Defaults to 0.
            end (int, optional): Last page to process. Defaults to None.
            pages (list, optional): Range of pages, e.g. --pages=1,3,5. Defaults to None.
        r   Tr   r   N)
r   r   r   r   r   extract_tablesr   r   r   r   )
r   r	   r
   r   r   r   r   r   tablesr   s
             r   tablezPDF2DOCX.tableO   s     eS!E75zz,d3aOEC1HCE2qqs2e2x*	&R&&uc5CFCF
 HHJ 3
  	FMM!	 HHJs0   BB	 		B3B.)B6 .B33B6 6Cc                      	 ddl m}   | ddd      }|j                          y# t        $ r t	        j
                  d       Y yw xY w)	zSimple user interface.r   )AppzPDF_2_Docx Converteri  iX  )titlewidthheightz)GUI is not supported in current platform.N)gui.Appr)   mainloopr   r   r   )r)   apps     r   guizPDF2DOCX.guim   sD    
	$ 2#cJCLLN	  	GMMEF	Gs   $ AA)NNr   NN)Nr   NNzlayout.json)Nr   NN)__name__
__module____qualname____doc__staticmethodstrr   listr   r"   r'   r0    r#   r   r   r      s    2"!# ### # 	#
 # #L   +s   	
  <   C D  : 
 
r#   r   c                  6    ddl } | j                  t               y)zCommand line entry.r   N)fireFirer   )r:   s    r   mainr<   ~   s    IIhr#   __main__)	r4   r   	converterr   r   r   parser<   r1   r8   r#   r   <module>r@      sA    *   r rj 	 zF r#   