Headless (command line) operations by LibreOffice or Microsoft Office 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
For reuse in other programs and projects, we made a separate standalone script doc2pdf.py to convert any document that LibreOffice can handle to PDF.
python doc2pdf.py ~/mydoc.docx
Convert a directory of .doc / .docx to .pdf by:
python -m loutils.doc2pdf ~/Documents
CAUTION:
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 explicit for-looping to work with older LibreOffice. LibreOffice is not thread-safe, so documents are converted or printed one at a time.