I need to batch convert a set of .doc or .docx files to .pdf in terminal, not using a GUI.

It would be helpful if I could batch-process multiple files.

I would also like to maintain as much meta-data as possible.

  • duplicate - superuser.com/questions/156189/… – Panther Mar 17 '12 at 15:49
  • The best answer there is to install another application and use a "pdf printer". What is wrong using a CLI method or will I loose the meta-data – Ringtail Mar 17 '12 at 15:55
  • I didn't say there was anything wrong with oowriter, gscan2pdf or any other GUI method. I was looking for the CLI then I intend to incorporate it into the .bashrc so I could pdf ~/some_.docx, thats all. Thanks for the suggestion. – Ringtail Mar 17 '12 at 16:12
  • 1
    See also this answer. – Takkat Mar 17 '12 at 18:47
  • @Takkat - That answer gets it into duplicate zone for me. – RobotHumans Mar 17 '12 at 19:53
up vote 25 down vote accepted

lowriter can be used as a command line tool (lowriter is a part of LibreOffice)

lowriter --convert-to pdf *.doc
convert /home/bodhi/Documents/testdoc2.doc -> /home/bodhi/Documents/testdoc2.pdf using writer_pdf_Export
convert /home/bodhi/Documents/testdoc.doc -> /home/bodhi/Documents/testdoc.pdf using writer_pdf_Export

evince testdoc.pdf

I do not have windows, so testdoc download from here

www.mltweb.com/prof/testdoc.doc

  • libreofice throws errors using this method, complains of not finding /home/user/documents/test.docx blah – Ringtail Mar 20 '12 at 1:00
  • what command did you use ? Do you have a test.docx ? – Panther Mar 20 '12 at 4:06
  • 1
    Works perfect for me! Beware of using "space" character from command line... When you get to the space character simply press "tab" ;) – Pitto Nov 16 '12 at 13:11
  • 1
    lowriter does not convert docx files correctly. At least not always. – Sceptical Jule Dec 26 '13 at 19:56
  • 1
    When I first tried your suggested lowriter command on Ubuntu 12.04, it opened a splash window and froze. I killed it with C-c and tried again without a DISPLAY variable. This time it first printed an error about missing display, but convert the document without any problems. Is it expected behavior, that the command can only work without a DISPLAY environment variable? – kasperd May 30 '14 at 10:35

I use unoconv, which converts all formats supported by LibreOffice.

  • 1
    Just for the record: $ unoconv myfile.docx (it creates myfile.pdf) – tokland May 9 '17 at 10:09

I use the following script:

for f in *.doc
do
lowriter --headless --convert-to pdf "$f"
done

--headless will prevent Libreoffice from opening 100s of files and eventually crashing if you try this with directories containing a lot of .doc files

In my opinion, the best way is with unoconv.

First install the package:

sudo apt install unoconv

and then convert to pdf using this command:

unoconv -f pdf XXYY.docx

(Replace XXYY.docx with the name of your file.)

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.