Press "Enter" to skip to content

How to Batch Convert Writer Documents to PDF in LibreOffice

Last updated on March 19, 2020

This advanced tutorial would help you to convert multiple docx, odf, odt files to PDF using the free LibreOffice office suite.

Converting multiple Microsoft Word *.docx, *.doc OR open document format files – *.odf, *.odt files to PDF at once can be tricky. Specially, if you are dealing with hundreds of files and need to convert them in batch. You can convert hundreds, thousands of files to PDF using free LibreOffice office suite. Here’s how.

Steps to convert document files to PDF

Note: The steps are different for Windows and Linux. Follow accordingly.

Convert a single file

  • In Windows systems (tested in Windows 10), open command prompt or Press Windows+R and type ‘cmd’ – press enter.
  • In the command prompt type below command:
"C:\Program Files (x86)\LibreOffice 5\program\swriter.exe" --headless --convert-to pdf Untitled1.odt
  • In Linux systems including Ubuntu as well, open terminal (CTRL+ALT+T) and run below commands:
lowriter --headless --convert-to pdf Untitled1.odt

Note:

  • By default the installation directory of LibreOffice is in above path for Windows 10. If you have installed in a different path, change accordingly.
  • The document Untitled1.odt would be converted to Untitled1.pdf in the same directory as the odt.
  • If you have a docx Word file, you can specify the same in place of Untitled1.odt.

Convert multiple files in batch

  • Converting multiple files is bit tricky due to different way of handling wildcard characters in Windows.
  • Open command prompt or Press Windows+R and type ‘cmd’ – press enter.
  • In the command prompt type below three lines exactly as below. Enter each line and press enter.
  • You can change *.odt in the first line to *.docx for Word files.
For %f in (*.odt) do (
"C:\Program Files (x86)\LibreOffice 5\program\swriter.exe" --headless --convert-to pdf %f
)
  • In Linux systems including Ubuntu as well, open terminal (CTRL+ALT+T) and run below commands:
lowriter --headless --convert-to pdf *.odt
  • Wait till above command executes. It takes some time to convert each document. On an average it takes approx 20 to 30 seconds per file (2 page) on Windows 10.
  • After conversion check the folder of the source document for converted PDF files.
SEE ALSO:  Protect LibreOffice Document with Password
PDF File Creation in Linux
PDF File Creation in Linux

 

Conclusion

This is how you can easily convert multiple docx, odt files to pdf using LibreOffice Writer which is free. You do not need any other softwares or installers or pdf printers for this work.

Drop a comment below if this article helped you or if you have any questions.

Reference

--convert-to OutputFileExtension[:OutputFilterName]
[--outdir output_dir] [--convert-images-to]
Batch convert files (implies --headless). If --outdir
isn't specified, then current working directory is used
as output_dir. If --convert-images-to is given, its
parameter is taken as the target MIME format for *all*
images written to the output format. If --convert-to is
used more than once, the last value of OutputFileExtension
[:OutputFilterName] is effective. If --outdir is used more
than once, only its last value is effective. For example:
--convert-to pdf *.odt
--convert-to epub *.doc
--convert-to pdf:writer_pdf_Export --outdir /home/user *.doc
--convert-to "html:XHTML Writer File:UTF8" *.doc
--convert-to "txt:Text (encoded):UTF8" *.doc

Looking for something else?

Read our complete tutorial index of Calc, Writer, Impress and Draw.


Related


12 Comments

  1. yanos yanos June 1, 2019

    For %f in (*.odt) do (
    “C:\Program Files (x86)\LibreOffice 5\program\swriter.exe” –headless –convert-to pdf %f
    timeout /T 18)

    The script need time to create the file, if you don’t add this command, it will execute whithout errors but no file will be create.
    Sorry for my english

    • arindam arindam Post author | June 6, 2019

      Thank you for your comment. It is helpful for our readers.

  2. omnivor Rajan omnivor Rajan March 4, 2020

    Brilliant! Converted 50 .doc files to .pdf in a fraction of a second. In Ubuntu 18.04.3, I used the following command in Terminal, after getting into the directory where my .doc files were:
    libreoffice6.1 –writer –headless –convert-to pdf *.doc
    Thanks a ton!

  3. yanos yanos March 4, 2020

    For %f in (*.odt) do (
    “C:Program Files (x86)LibreOffice 5programswriter.exe” –headless –convert-to pdf %f
    timeout /T 18)

    The script need time to create the file, if you don’t add this command, it will execute whithout errors but no file will be create.
    Sorry for my english

    • arindam arindam March 4, 2020

      Thank you for your comment. It is helpful for our readers.

  4. Wolfgang Wolfgang March 23, 2020

    Hi there, thank you for your help;
    Executing the scripts gets always the error: “”LibreOffice 6.3 Die Anwendung kann nicht gestartet werden – ein interner Fehler ist aufgetreten” (starting swriter was not possible – internal error”
    Using W10 1909 Build 18323.720
    Restart – no change, new installation LO – no change

    • arindam arindam Post author | March 28, 2020

      Go to the path “C:\Program Files (x86)\LibreOffice 5\program\” and check whether you have swriter.exe.

      • Wolfgang Wolfgang April 1, 2020

        “C:\Programme\LibreOffice\Program\swriter.exe” exists
        krw

  5. flo flo April 1, 2020

    I had to adjust your command line but works perfectly in the end in windows cmd.

    I also included a command to write names of processed files in a text file.
    It helps to convert all the files (and slows down the proccess and allows to create all the pdf files – otherwise some of the odt files are skipped during the batch conversion)

    For %f in (*.odt) do ( “C:\Program Files\LibreOffice\program\soffice.exe” –headless –convert-to pdf “%f” | echo %f >> C:\1\list.txt )

  6. Aleks Aleks April 7, 2020

    Where do you put original odt files?

    • arindam arindam Post author | April 10, 2020

      You should keep the odt files from where you are running the command in either Windows or Linux.

  7. Pedro de Alcântara Teixeira Junior Pedro de Alcântara Teixeira Junior September 22, 2020

    The method stated by the author to convert multiple files didn’t work for me. I was trying to convert my word files (with extension .doc) to pdf files using the above instructions, but no success. It took me a lot of time to figure it out how to do it properly, so I will share my solution here (Notice that I am running Libreoffice version 7.0.0.7, 64 bits on Windows 10, I don’t know the syntax on Linux).

    I opened a prompt (Windows + R, then type CMD), navigated to the folder where my doc files where, and then simply used the following command (all in one line, not in “three lines”, lik suggested!):

    for %f in (“*.doc”) do “C:\Program Files\LibreOffice\program\soffice” –convert-to pdf “%f”

    (the difference is the double-quotes in the expressions *.doc and %f)

    Observations:
    1 – If you have docx files, simply adapt the command line, using “*.docx” instead of “*.doc”. The same goes for any libreoffice document (odg, odt, etc);
    2 – Check the LibreOffice path beforehand, because depending on the settings, you may need to replace the “C:\Program Files\LibreOffice\program\soffice” with your PC’s path for the soffice.exe file;
    3 – To use the command above in a batch file for ease of use (in case you need to run that command more than once in different folders), you need to use %% instead of % (two percentage symbols instead of one), so the example line would be like follows:

    for %f in (“*.doc”) do “C:\Program Files\LibreOffice\program\soffice” –convert-to pdf “%f”

    Hope it saves you the headache I had to find this solution… 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.