o
    WOfA                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ zd dlmZ W n e	y/   d dl
mZ Y nw eeZdd Zdd Zd	d
 ZdddZdd ZdS )    N)Path)tqdm)versionc           	      C   s   dd l }|jd}d}| d rDttt| d dD ]%}t| d t|jd  }|j	
t|}|jt||d	 |d qn0td
d}t| d  }t| d  }|j	
t|}|jt||d	 |d |d
 |s||  d S d S )Nr   zWord.Application   batchinput*.docxoutput.pdf)
FileFormat   total)win32com.clientclientDispatchr   sortedr   globstrstem	DocumentsOpenSaveAsCloseresolveupdateQuit)	pathskeep_activewin32comwordwdFormatPDFdocx_filepathpdf_filepathdocpbar r&   G/var/www/html/dev/env/lib/python3.10/site-packages/docx2pdf/__init__.pywindows   s(   


r(   c           	   	   C   s   t tjd  }dddt|t| d t| d t| g}dd }| d	 r5ttt | d d
nd}t	|d}||D ].}zt
|}W n	 tyR   Y q@w |d dkr_|d q@|d dkrnt| td q@d S )Nzconvert.jxaz/usr/bin/osascriptz-l
JavaScriptr   r	   c                 s   s8    t j| t jd}	 |j  }|sd S |dV  q
)N)stderrTzutf-8)
subprocessPopenPIPEr*   readlinerstripdecode)cmdprocessliner&   r&   r'   run5   s   zmacos.<locals>.runr   r   r   r   resultsuccesserror)r   __file__parentr   r   lowerlenlistr   r   jsonloads
ValueErrorr   printsysexit)	r   r   scriptr1   r4   r   r%   r3   msgr&   r&   r'   macos)   s2   



&

rE   c                 C   s   t |  } |rt | nd }i }|  r3d|d< t| |d< |r)| s(J nt| }||d< |S d|d< t| ds@J t| |d< |rX| rXt|t| jd  }n|rdt|dscJ nt| jt| jd  }||d< |S )NTr   r   r	   Fz.docxr
   )r   r   is_dirr   endswithr   r9   )
input_pathoutput_pathr	   r&   r&   r'   resolve_pathsK   s*   rJ   Fc                 C   s:   t | |}tjdkrt||S tjdkrt||S td)Ndarwinwin32zSdocx2pdf is not implemented for linux as it requires Microsoft Word to be installed)rJ   rA   platformrE   r(   NotImplementedError)rH   rI   r   r   r&   r&   r'   converte   s   




rO   c                     s   dd l } dd l dtjv rtt td | d} fdd} j||d}|j	ddd	 |j	d
ddd |j	ddddd |j	ddddd t
tjdkrZ|  td n| }t|j|j|j d S )Nr   z	--versiona:  
    Example Usage:

    Convert single docx file in-place from myfile.docx to myfile.pdf:
        docx2pdf myfile.docx

    Batch convert docx folder in-place. Output PDFs will go in the same folder:
        docx2pdf myfolder/

    Convert single docx file with explicit output filepath:
        docx2pdf input.docx output.docx

    Convert single docx file and output to a different explicit folder:
        docx2pdf input.docx output_dir/

    Batch convert docx folder. Output PDFs will go to a different explicit folder:
        docx2pdf input_dir/ output_dir/
    c                    s    j | ddS )N    )max_help_position)RawDescriptionHelpFormatter)progargparser&   r'   <lambda>   s    zcli.<locals>.<lambda>)descriptionformatter_classr   zIinput file or folder. batch converts entire folder or convert single file)helpr	   ?zoutput file or folder)nargsrY   z--keep-active
store_trueFz%prevent closing word after conversion)actiondefaultrY   zdisplay version and exitr   )textwraprU   rA   argvr@   __version__rB   dedentArgumentParseradd_argumentr;   
print_help
parse_argsrO   r   r	   r   )r_   rW   rX   parserargsr&   rT   r'   cliq   s>   

ri   )NF)rA   r=   r+   pathlibr   	tqdm.autor   importlib.metadatar   ImportErrorimportlib_metadata__package__ra   r(   rE   rJ   rO   ri   r&   r&   r&   r'   <module>   s     "
