Convertir documentos con LibreOffice desde la consola (CMD, PowerShell) + BATCH + Añadir al PATH

Añadir LibreOffice a las variables de entorno (PATH) para convertir archivos desde la consola Windows, ejem odt a pdf, docx a pdf, etc incluso varios (Batch)

Para la conversion de archivos odt a pdf desde la linea de comandos CMD o PowerShell de Windows con LibreOffice lo debemos tener instalado:

https://libreoffice.org/

lea y elija la versión que desea instalar

La primera es una versión para entusiastas en la tecnología y podría tener algún pequeño error, pero si usted lo desea usar en una empresa donde es impensable que en medio del trabajo se cuelgue el programa debe instalar la versión de abajo:

Después de estar instalado, estará instalado de acuerdo a la versión que instaló para su ordenador:

64 bit

C:\Program Files\LibreOffice

32 bit

C:\Program Files (x86)\LibreOffice

Nota: He visto ordenadores donde han instalado LibreOffice de 32 bits en Windows de 64 bits, esto no es correcto para este tutorial, lo correcto es LibreOffice de 32 bits en Windows de 32 bits y LibreOffice de 64 bits en Windows de 64 bits.

Añadir LibreOffice al PATH de Windows

Para poder convertir documentos odt a pdf desde la terminal primero he añadido al PATH la ruta de los ejecutables de LibreOffice tomando como ejemplo mi tutorial para añadir al PATH a FFmpeg en Windows:

Añadir ejecutables de FFmpeg a las variables de usuario

Ahora entre en la carpeta donde esté instalado LibreOffice y busque la carpet “program” y entre allí:

allí copie esa ruta dandole clic en la barra de direcciones así:

para evitar que lo que copio se le llegue a borrar peguelo en algun bloque de notas:

C:\Program Files\LibreOffice\program

esto es lo que usaremos

Añadir LibreOffice al PATH en Windows 10, 11

Para Windows 10 de clic en buscar y escriba (escriba a mano letra por letra porque si copia y pega no sale):

Editar las variables de entornos del sistema

o puedes poner hacer así:

1.) Presiona Win + R 2.) Escribe:

sysdm.cpl

3.) Presiona Enter

y de clic en:

Variables de entorno

Editando las variables de entorno en Windows 10

Aparece una ventana,tiene que dar clic donde dic

Path

y clic en:

Editar

y en la ventana “Editar variables de entorno” dar clic en Nuevo:

allí pegue la ruta de :

C:\Program Files\LibreOffice\program

cierre la ventana, cierre la CMD o PowerShell y vuelva a abrir uno de ellos y ponga:

soffice --help

en Windows 10 no es necesario Reiniciar el ordenador.

Conversión de archivos con LibreOffice desde la terminal (Windows)

Para realizar conversiones desde la consola es recomendable usar el ejecutable:

soffice

Este permite convertir archivos de Writer, Calc, Impress, Draw, etc., sin necesidad de abrir la interfaz gráfica.

En teoria desde la terminal se puede realizar cualquier conversión que puede hacer LibreOffice normalmente

Archivo > Guardar como

al guardar un archivo como aparece en la sub opción todos los formatos que puede usar:

están en Writer:

.fodt  
.docx  
.xml  
.doc  
.rtf  
.txt

y otros.

Y para LibreOffice Impress, y los demás así mismo revisar que formatos pueden guardar


🔹 Convertir un archivo individual

Debe estar ubicado en la consola (CMD o PowerShell) en la carpeta donde se encuentra el archivo.

Ejemplo, si su archivo se llama:

El nombre de su archivo.odt

Para convertirlo a PDF:

soffice --headless --convert-to pdf "El nombre de su archivo.odt"

Se generará automáticamente:

El nombre de su archivo.pdf

🔹 Especificar carpeta de salida

Si desea guardar el archivo convertido en otra carpeta:

soffice --headless --convert-to pdf --outdir C:\Salida "El nombre de su archivo.odt"

Resultado:

El nombre de su archivo.odt

se guardará en:

C:


🔹 Conversión en masa (batch conversion)

Debe ubicarse en la carpeta donde están los archivos.

Convertir todos los ODT a PDF

for %f in (*.odt) do (soffice --headless --convert-to pdf "%f")

🔹 Conversión de distintos formatos (uno a la vez)

Reemplace con el nombre real de su archivo.

Convertir ODT a DOC

soffice --headless --convert-to doc "03-Función Hepática.odt"

Convertir ODT a DOCX

soffice --headless --convert-to docx "03-Función Hepática.odt"

Convertir ODT a TXT

soffice --headless --convert-to txt "03-Función Hepática.odt"

Convertir DOCX a ODT

soffice --headless --convert-to odt "Archivo a convertir.docx"

🔹 Conversión en masa de otros formatos

Sea paciente mientras se realiza el proceso.

ODT a DOC

for %f in (*.odt) do (soffice --headless --convert-to doc "%f")

ODT a DOCX

for %f in (*.odt) do (soffice --headless --convert-to docx "%f")

ODT a TXT

for %f in (*.odt) do (soffice --headless --convert-to txt "%f")

DOC a ODT

for %f in (*.doc) do (soffice --headless --convert-to odt "%f")

DOCX a ODT

for %f in (*.docx) do (soffice --headless --convert-to odt "%f")

🔹 Conversión de hojas de cálculo (Excel / Calc)

XLSX a PDF

soffice --headless --convert-to pdf "archivo.xlsx"

ODS a XLSX

soffice --headless --convert-to xlsx "archivo.ods"

🔹 Conversión de presentaciones (PowerPoint / Impress)

PPTX a PDF

soffice --headless --convert-to pdf "archivo.pptx"

🔹 Nota importante

  • --headless evita que se abra la interfaz gráfica.
  • soffice funciona para todos los módulos de LibreOffice.
  • Se recomienda usar esta forma en lugar de swriter, scalc, etc., para mantener compatibilidad total.

🔹 Consejo para quienes están comenzando en la consola (Autocompletado)

Si su archivo tiene un nombre largo, no es necesario escribirlo completo manualmente.

Por ejemplo, si tiene un archivo llamado:

mi archivo.docx

Usted puede escribir solamente:

"mi

y luego presionar la tecla:

Tab

La consola automáticamente completará el resto del nombre del archivo.

En PowerShell y en CMD, cuando el nombre tiene espacios, el sistema suele completar y cerrar las comillas automáticamente, quedando algo como:

"mi archivo.docx"

Esto:

  • Evita errores de escritura.
  • Es más rápido.
  • Reduce problemas con espacios en nombres de archivos.

💡 Si hay varios archivos que comienzan con el mismo nombre (por ejemplo: mi archivo.docx y mi resumen.docx), puede presionar Tab varias veces para ir cambiando entre las opciones disponibles.

Este pequeño truco le ahorrará mucho tiempo cuando trabaje desde la terminal.


🔹 Sección avanzada: Forzar filtros específicos en la conversión

LibreOffice permite especificar el filtro exacto que se usará para exportar el archivo.

Esto es muy útil cuando:

  • Quiere mayor control sobre la conversión.
  • Necesita compatibilidad específica.
  • El archivo convertido no queda exactamente como esperaba.
  • Quiere exportar con opciones especiales (por ejemplo PDF optimizado).

La sintaxis general es:

soffice --headless --convert-to formato:"Nombre del filtro" archivo.ext

🔹 Ejemplos prácticos

Exportar DOCX a PDF usando el filtro oficial de Writer

soffice --headless --convert-to pdf:"writer_pdf_Export" "archivo.docx"

Esto fuerza a que el módulo Writer sea el que realice la exportación a PDF.


Exportar XLSX a PDF usando el filtro de Calc

soffice --headless --convert-to pdf:"calc_pdf_Export" "archivo.xlsx"

Exportar PPTX a PDF usando el filtro de Impress

soffice --headless --convert-to pdf:"impress_pdf_Export" "archivo.pptx"

🔹 Forzar compatibilidad antigua (ejemplo DOC antiguo de Word)

Si necesita exportar a formato Word 97–2003:

soffice --headless --convert-to doc:"MS Word 97" "archivo.odt"

🔹 ¿Cuándo usar filtros específicos?

En la mayoría de los casos, esto funciona perfectamente:

soffice --headless --convert-to pdf archivo.docx

Pero si:

  • El PDF sale con errores,
  • No respeta márgenes,
  • O necesita un comportamiento específico,

entonces es recomendable forzar el filtro.


🔹 Nota técnica

Cada formato interno tiene un nombre de filtro específico.

Algunos comunes son:

  • writer_pdf_Export
  • calc_pdf_Export
  • impress_pdf_Export
  • MS Word 97
  • MS Excel 97
  • MS PowerPoint 97

En uso normal no necesita saber esto, pero para automatización avanzada es muy útil.


Consultas

Tip: Convertir Documentos en la Línea de Comandos con LibreOffice
https://www.reddit.com/r/libreoffice/comments/10xxfqr/tip_convert_documents_on_command_line_with/

File Conversion Filter Names
https://help.libreoffice.org/latest/en-US/text/shared/guide/convertfilters.html

Comentarios