Skip to content

Instantly share code, notes, and snippets.

@MichalZalecki
Created July 8, 2017 08:09
Show Gist options
  • Star 17 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save MichalZalecki/92fd007699004ae7d806274d3a0d5476 to your computer and use it in GitHub Desktop.
Save MichalZalecki/92fd007699004ae7d806274d3a0d5476 to your computer and use it in GitHub Desktop.
Converting DOCX to PDF using Python
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())
if filename is None:
raise LibreOfficeError(process.stdout.decode())
else:
return filename.group(1)
def libreoffice_exec():
# TODO: Provide support for more platforms
if sys.platform == 'darwin':
return '/Applications/LibreOffice.app/Contents/MacOS/soffice'
return 'libreoffice'
class LibreOfficeError(Exception):
def __init__(self, output):
self.output = output
if __name__ == '__main__':
print('Converted to ' + convert_to(sys.argv[1], sys.argv[2]))
@MichalZalecki
Copy link
Author

Full setup Flask and Docker 🚢 Converting DOCX to PDF using Python

@AshuT930
Copy link

How can I use this code on windows or linux machine?
do I need to install libreoffice module on my local?

@pelusa-v
Copy link

pelusa-v commented Apr 2, 2024

Full setup Flask and Docker 🚢 Converting DOCX to PDF using Python

Thanks a lot!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment