Search code examples
python-3.xlinuxlibreoffice

Convert docx. to pdf in python in linux


It doesn't create a pdf file in the directory also it prints - None

import sys
import subprocess
import re


def convert_to(folder, source, timeout=None):
    args = [libreoffice_exec(), '--headless', '--convert-to', 'pdf', '--outdir', folder, source]

    process = subprocess.run(args, stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE, timeout=timeout)
    filename = re.search('-> (.*?) using filter', process.stdout.decode())

    return filename


def libreoffice_exec():
    # TODO: Provide support for more platforms
    if sys.platform == 'darwin':
        return '/Applications/LibreOffice.app/Contents/MacOS/soffice'
    return 'libreoffice'

result = convert_to('/directory_to_save_file',  '/File_path', timeout=15)
print(result)

Could anyone give me solution where I can easily convert docx to pdf? Thanks in advance!


Solution

  • You can try below code in your function

    import subprocess
    output = subprocess.check_output(['libreoffice', '--convert-to', 'pdf' ,'demo.docx'])
    print output