使用 LibreOffice、lpr 命令从命令行打印?

Dav*_*s G 11 linux printing lpr libreoffice

我正在尝试从命令行打印 word 文档,但我需要指定通常使用 lpr 的打印选项。这是我正在使用的命令

libreoffice -p "filename.doc"
Run Code Online (Sandbox Code Playgroud)

我需要能够指定用户名 (-U),这可能吗?以下不起作用

libreoffice -p "filename.doc" -U username
Run Code Online (Sandbox Code Playgroud)

这应该有效,还是有其他方法?

小智 10

您不能将lpr命令行选项传递给libreoffice. 两种可能的解决方案是:

  1. 一步解决方案(我认为最好的解决方案):使用unoconv输出 PDF 到stdout管道lpr

    $ unoconv --stdout filename.doc | lpr -U username -P the_printer_name
    
    Run Code Online (Sandbox Code Playgroud)
  2. 三步解决方案(如果你不想/不能使用unoconv):使用libreoffice --print-to-file临时文件+lpr文件+删除临时文件(不幸的是libreoffice仍然不支持打印到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
    
    Run Code Online (Sandbox Code Playgroud)