Cross-platform LibreOffice document conversion and printing

libreoffice, asyncio, document-conversion, libreoffice-converter
pip install loutils==1.4.0


LibreOffice Utils

Actions Status PyPi versions PyPi Download stats

Headless (command line) operations on Word, Excel, Powerpoint and most other formats LibreOffice can handle for:

  • Doc => PDF conversion (LibreOffice only)
  • printing (to the system default printer only)

from Python command line using LibreOffice or Microsoft Word

.doc / .docx to PDF conversion

Convert a directory of .doc / .docx to .pdf by:

python -m loutils.doc2pdf ~/Documents



The doc2print.py script can print an unlimited number of pages to an unwanted printer, possibly causing great expense or violation of private documents to a public printer. Use great care with these scripts, preferably to a local non-networked printer you are sitting next to.

python -m loutils.doc2print ~/mydocs

The -exe parameter allows selecting the printing program. The script does not check that the files can be printed appropriately, it just prints. Thus use the -s parameter to select only the suffixes wanted. For example to print all Markdown files in a directory with Notepad++:

python -m loutils.doc2print ~/mydocs -s .md -exe notepad++

LibreOffice 7.2 finally fixed file globbing, but we use explict for-looping to work with older LibreOffice. LibreOffice is not thread-safe, so documents are converted or printed one at a time.