B
    5d                 @   sB   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 )	    N   )	Converterc            	   @   sr   e Zd ZdZedeeeeeedddZedeeeeeedd	d
Z	edeeeed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sHt|d d}|r6|d8 }|rHdd |D }t| |}zJy|j||||f| W n, tk
r } zt| W dd}~X Y nX W d|	  X dS )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   s   g | ]}|d  qS )r    ).0ir   r   1/tmp/pip-unpacked-wheel-2w1dbhau/pdf2docx/main.py
<listcomp>    s    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)r   r   pager   	debug_pdflayout_filec             K   sD   | ddst|d d}t| |}|j||||f| |  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.debug)r   r   r	   r
   c       	   
   K   s   t |tr|g}|ddsHt|d d}|r6|d8 }|rHdd |D }t| |}zLy|j|||f|}W n0 tk
r } zg }t| W dd}~X Y nX W d|	  X |S )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   s   g | ]}|d  qS )r   r   )r   r   r   r   r   r   S   s    z"PDF2DOCX.table.<locals>.<listcomp>N)
r   r   r   r   r   Zextract_tablesr   r   r   r   )	r   r   r   r	   r
   r   r   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   )r0   r   r   r   mainn   s    r1   __main__)r   	converterr   r   r   parser1   r)   r   r   r   r   <module>   s   c