LibreOffice and Apache OpenOffice at the command line
By the Script

Your favorite office suites have a surprisingly active life at the command line, and various supplementary scripts can help you perform some functions more easily there than on the desktop.
LibreOffice and Apache OpenOffice are primarily desktop applications. However, you might not know that the way these applications open is determined by command-line options. You can also print and convert files from the command line, in some cases more easily than from the desktop. Additionally, of the various supplementary scripts that have been written for their predecessor OpenOffice.org, at least two sets of utilities continue to be useful for manipulating their files from the command line.
You may need to search for these utilities, because they are not packaged for all distributions. Still, whether you are a home user or a developer who wants to summon LibreOffice as part of a more elaborate script, these tools can be worth hunting down. Like many command-line tools, they allow you to perform functions more easily than on the desktop or do things that are not even options in the editing window.
LibreOffice and OpenOffice Command Options
Both LibreOffice and Apache OpenOffice start with the command soffice
, which is short for StarOffice, the name of the application before Sun Microsystems released the code in July 2000. Some of the options listed by the --help
option are obsolete, such as --quickstart
and --nofirststartwizard
, which refer to features no longer in recent versions. Others, like --display
, are useful only on Linux, but many of the others are useful on any platform.
The most obvious way to modify this basic command is with options that start with a specific module: --writer
for Writer, --calc
for Calc, --draw
for Draw, --impress
for Impress, and --math
for Math. Less obvious is --web
, which opens Writer in the Web Layout view, and --global
, which opens a new master document in Writer.
If you want to start work directly, you can open an existing file with -o FILENAME
or a read-only copy with --view FILENAME
. Alternatively, if you know the template you want to use, -n TEMPLATE
opens a new document using the template specified. Similarly, you can start a slide show directly – instead of opening it to edit – with --show FILENAME.odp
.
Developers might be interested in --headless
, which opens the application without a GUI, or at least --invisible
, which opens the application so its features are open only via the API. All users might be interested in the --nologo
option to start LibreOffice or OpenOffice without a splash screen or --norestore
to disable file recovery after a crash to ensure a slightly faster – or at least less annoying – startup time.
Other options let you print files without opening the editing window. Using -p
, you can print a space-separated list of files to the default print. Alternatively, you can specify a printer with --pt PRINTERNAME
to print a space-separated list of files wherever you want. Neither returns any output to the command-line prompt.
Still another option is --print-to-file PRINTERNAME OUTPUTDIRECTORY FILES
, which is useful for generating PostScript files (as long as the printer supports PostScript, of course). Interestingly enough, --print-to-file
supports space-separated lists of all parameters, which means that different printers can print different files to different directories all at the same time.
The command line also supports conversion of files from one supported format to another with --convert OUTPUTFILEEXTENSION OUTPUTDIRECTORY FILES
. You can use any file extension listed in the Save or Save As dialogs for LibreOffice or OpenOffice. If no output directory is specified, then the output files are created in the present working directory. This option is the equivalent of File | Wizards | Document Converter.
OpenOffice.org Python
Over the years, some of the utilities written for OpenOffice.org or its successors have become obsolete as features and circumstances have changed. However, one utility that has proved long-lived is OpenOffice.org Python (OOoPy). OOoPy [1] is a collection of Python scripts for working with LibreOffice and OpenOffice files. It is best run with Python 2.5 or higher, although you can run it with Python 2.3 plus the ElementTree library [2].
To use the scripts, download the OOoPy file and unarchive it. From the directory in which you placed the file, run the command:
python setup.py install
The directory ~/.local/share/ooopy
will be created. You can either run the scripts from the /bin
subdirectory of the directory to which you downloaded, or you add the directory to your environment.
Some of the scripts, such as ooo_fieldreplace, ooo_mailmerge, and ooo_prettyxml, are of interest mainly to Python developers and are also seriously underdocumented. The remainder, with their triple Os, underscores, and help confined to the bare structure displayed by --help
, take careful typing, but they are well worth the effort.
For example, if you want to extract text from a document, you can use ooo_as_text
with the syntax:
ooo_as_text --output-file OUTPUTFILE INPUTFILE, INPUTFILE
Most likely, you will want to add -n
to add a line to mark the end of each paragraph. Other formatting will be lost, but the output can be read in any text editor. The script may be able to recover a corrupted file, and, in some cases, this may be the easiest way to begin converting a file to another format.
The ooo_as_text
script is also used alongside GNU grep to run ooo_grep
. Using ooo-grep
does not give you all the options of grep, but it does allow you to search files with all the regular expressions that grep supports. Its results are the same as those of grep -l
; that is, it returns the names of files that contain matches.
Another useful script is ooo_cat
, which combines a comma-separated list of files into a single file. Aside from the command, ooo_cat
has the same structure as ooo_as_text
.
Writer2LaTeX
Writer2LaTeX [3] has outgrown its name. Originally, it was a Java program for converting documents produced in LibreOffice's or OpenOffice's word processor to LaTeX, which many users prefer for layout. Now, however, the program also includes options for converting bibliographic data to BibTeX format, Writer files to ePub, and Writer and Calc files to XHTML. This growth is reflected in a 73-page manual [4]. The basic command structure for Writer2LaTeX is:
w2l INPUTFILE OUTPUTFILE
By default, the conversion is to LaTeX. However, you can specify formats with the options -latex
, -bibtex
, -xhtml
, -epub
, and others (Figure 1). Unlike the OOoPy scripts, Writer2LaTeX does display status reports at the command line.

The formatting of LaTeX files specifically can also be detailed. With -ultraclean
, most formatting is ignored. Using -clean
, hyperlinks, color, and limited formatting is preserved. Additionally, you can specify whether the LaTeX file is optimized to produce a PDF file for viewing on the screen with -pdfscreen
or for printing with -pdfprint
.
Similarly, conversions to XHTML can be adjusted by selecting a template with --template FILE
or a style sheet with --stylesheet FILE
. The documentation also includes more than 45 pages about creating style sheets and templates to create output files that are formatted with more precision.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Direct Download
Read full article as PDF:
Price $2.95
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Find SysAdmin Jobs
News
-
LibreOffice 7.5 has Arrived and is Loaded with New Features and Improvements
The favorite office suite of the Linux community has a new release that includes some visual refreshing and new features across all modules.
-
The Next Major Release of Elementary OS Has Arrived
It's been over a year since the developers of elementary OS released version 6.1 (Jólnir) but they've finally made their latest release (Horus) available with a renewed focus on the user.
-
KDE Plasma 5.27 Beta Is Ready for Testing
The latest beta iteration of the KDE Plasma desktop is now available and includes some important additions and fixes.
-
Netrunner OS 23 Is Now Available
The latest version of this Linux distribution is now based on Debian Bullseye and is ready for installation and finally hits the KDE 5.20 branch of the desktop.
-
New Linux Distribution Built for Gamers
With a Gnome desktop that offers different layouts and a custom kernel, PikaOS is a great option for gamers of all types.
-
System76 Beefs Up Popular Pangolin Laptop
The darling of open-source-powered laptops and desktops will soon drop a new AMD Ryzen 7-powered version of their popular Pangolin laptop.
-
Nobara Project Is a Modified Version of Fedora with User-Friendly Fixes
If you're looking for a version of Fedora that includes third-party and proprietary packages, look no further than the Nobara Project.
-
Gnome 44 Now Has a Release Date
Gnome 44 will be officially released on March 22, 2023.
-
Nitrux 2.6 Available with Kernel 6.1 and a Major Change
The developers of Nitrux have officially released version 2.6 of their Linux distribution with plenty of new features to excite users.
-
Vanilla OS Initial Release Is Now Available
A stock GNOME experience with on-demand immutability finally sees its first production release.