o
    e                     @   sF   d dl Z ddlmZ G dd dZejZdd Zedkr!e  dS dS )	    N   )	Converterc                   @   s   e Zd ZdZeddededededed	efd
dZeddedededededefddZ	eddededed	efddZ
edd ZdS )PDF2DOCXz(Command line interface for ``pdf2docx``.Nr   pdf_file	docx_filepasswordstartendpagesc           	   
   K   s   t |tr|g}|dds$t|d d}|r|d8 }|r$dd |D }t| |}z4z|j||||fi | W n tyO } zt| W Y d}~nd}~ww W |	  dS W |	  dS |	  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   c                 S      g | ]}|d  qS r    .0ir   r   =D:\Projects\ConvertPro\env\Lib\site-packages\pdf2docx/main.py
<listcomp>        z$PDF2DOCX.convert.<locals>.<listcomp>N)

isinstanceintgetmaxr   convert	Exceptionloggingerrorclose)	r   r   r   r   r	   r
   kwargscver   r   r   r      s    
zPDF2DOCX.convertlayout.jsonpage	debug_pdflayout_filec                 K   sH   | ddst|d d}t| |}|j||||fi | |  dS )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   Z
debug_pager   )r   r   r"   r   r#   r$   r   r   r   r   r   debug+   s
   
zPDF2DOCX.debugc           	   
   K   s   t |tr|g}|dds$t|d d}|r|d8 }|r$dd |D }t| |}z5z|j|||fi |}W n tyP } zg }t| W Y d}~nd}~ww W |	  |S W |	  |S |	  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   c                 S   r   r   r   r   r   r   r   r   S   r   z"PDF2DOCX.table.<locals>.<listcomp>N)
r   r   r   r   r   Zextract_tablesr   r   r   r   )	r   r   r   r	   r
   r   r   Ztablesr    r   r   r   tableC   s(   

zPDF2DOCX.tablec                  C   s&   ddl m}  | dddd}|  dS )zSimple user interface.r   )AppzPDF_2_Docx Converteri  iX  )titlewidthheightN)Zgui.Appr'   Zmainloop)r'   Zappr   r   r   guia   s   zPDF2DOCX.gui)NNr   NN)Nr   NNr!   )Nr   NN)__name__
__module____qualname____doc__staticmethodstrr   listr   r%   r&   r+   r   r   r   r   r      s    &&r   c                  C   s   dd l } | t d S )Nr   )fireZFirer   )r3   r   r   r   mainn   s   r4   __main__)r   	converterr   r   r   parser4   r,   r   r   r   r   <module>   s   c
