12

I'm trying to print a word document from the command line, but I need to specify printing options that I would normally use lpr for. This is the command I'm using

libreoffice -p "filename.doc"

I need to be able to specify a username (-U), is this possible? The following doesn't work

libreoffice -p "filename.doc" -U username

Should this work, or is there another way?

Davis G
  • 123

3 Answers3

11

You can't pass lpr command line options to libreoffice. Two possible solutions are:

  1. One step solution (the best solution in my opinion): use unoconv outputting a PDF to stdout piped to lpr:

    $ unoconv --stdout filename.doc | lpr -U username -P the_printer_name
    
  2. Three step solution (if you don't want / can't use unoconv): use libreoffice --print-to-file to a temporary file + lpr of the file + delete the temporary file (unfortunatelly libreoffice still doesn't support printing to stdout):

    $ libreoffice --headless --print-to-file --printer-name the_printer_name --outdir /tmp filename.doc
    $ lpr -U username /tmp/filename.ps -P the_printer_name
    $ rm /tmp/filename.ps
    
2

Under the, $ libreoffice --help

Usage: soffice [options] [documents...]

soffice -p File_name.odt

Worked for me.

libreoffice -p File_Name.odt just opened the program, lpr just spat at garbage.

2

This is how I print a document using LibreOffice and a CUPS printer on Debian 9:

/usr/bin/libreoffice --pt [cupsname] /home/username/filename.odt

It works very well without any middle steps.