Skip to content

Headless document conversion and printing using LibreOffice or Microsoft Office

License

Notifications You must be signed in to change notification settings

scivision/office-headless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Headless LibreOffice / Microsoft Office

Actions Status PyPI versions PyPI Download stats

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

standalone single file document to PDF

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

.doc / .docx to PDF conversion

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

python -m loutils.doc2pdf ~/Documents

Printing

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.