Cómo convertir archivos DOCX a PDF de forma masiva con la línea de comandos de LibreOffice.

Si tienes docenas de documentos de Word, abrir cada uno en LibreOffice y exportarlo por separado es lento y fácil de interrumpir. Un comando como este soffice --convert-to pdfpuede convertir un lote, pero los problemas comunes incluyen enviar los PDF a la carpeta incorrecta, perder nombres de archivo con espacios, que LibreOffice adjunte la tarea a una ventana ya abierta o generar PDF con un formato diferente al de Word. El flujo de trabajo que se muestra a continuación comienza con un archivo de prueba, pasa a un comando de lote seguro y finaliza con comprobaciones para detectar salidas faltantes o con formato incorrecto.

Estos ejemplos utilizan la sintaxis actual de la línea de comandos de LibreOffice, documentada en la Ayuda de LibreOffice 26.8 (consultada el 6 de octubre de 2026). Utilizan writer_pdf_Exportel filtro de exportación a PDF para documentos de Writer. La conversión es adecuada para archivos DOCX estándar, pero los diseños complejos aún requieren revisión, ya que LibreOffice y Microsoft Word pueden mostrar algunas fuentes y diseños de página de forma diferente.

Antes de convertir una carpeta

Instale LibreOffice en el equipo que realizará la conversión. En un servidor, utilice el gestor de paquetes o el instalador del sistema y confirme que sofficeesté disponible en la línea de comandos. En Windows, el ejecutable suele encontrarse en C:\Program Files\LibreOffice\program\soffice.exe; la ruta de instalación puede variar.

Prepara dos carpetas separadas: una para los archivos DOCX originales y otra para los PDF resultantes. Comienza con una carpeta de salida nueva o vacía. Si conviertes los archivos a una carpeta que ya contiene PDF con los mismos nombres base, LibreOffice podría preguntar si deseas sobrescribirlos o no lograr reemplazarlos, según el proceso y el entorno. Mantener separadas las carpetas de origen y salida también evita un bucle de conversión accidental cuando los scripts analizan un directorio.

Para documentos con tipografías poco comunes, instale las mismas fuentes que utilizó el autor original antes de la conversión. La falta de fuentes puede alterar los saltos de línea, el número de páginas, el ancho de las tablas y la paginación, incluso cuando el archivo DOCX se abre sin errores.

1. Prueba primero con un archivo DOCX.

Convierta un documento representativo antes de ejecutar un lote grande. En los ejemplos siguientes, reemplace las rutas de ejemplo con las suyas:

mkdir -p "/srv/docs/converted"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "/srv/docs/converted" "/srv/docs/incoming/Annual Report.docx"

--headlessEjecuta LibreOffice sin abrir su interfaz gráfica. --convert-toSelecciona el formato de salida y el filtro opcional, mientras --outdirque especifica el destino. La tabla de filtros de LibreOffice muestra writer_pdf_Exportla salida PDF de Writer. Revisa el PDF de prueba antes de convertirlo todo: comprueba los saltos de página, los encabezados y pies de página, las tablas, las imágenes, los hipervínculos y los caracteres especiales.

Si la prueba no genera ningún PDF, confirme que la ruta de origen sea correcta, que el archivo sea legible y que la carpeta de salida tenga permisos de escritura. Compruebe también que LibreOffice esté instalado con la misma cuenta que ejecuta el comando. Referencias oficiales: Filtros de conversión de archivos de LibreOffice y Parámetros de línea de comandos de LibreOffice .

2. Convertir todos los archivos DOCX en un solo comando Bash.

En Linux o macOS, abre Bash en una terminal y usa un patrón de nombre de archivo. Asegúrate de sofficeque esté en tu PATH; en macOS, es posible que necesites llamar al ejecutable dentro del paquete de la aplicación LibreOffice. Este ejemplo maneja archivos DOCX directamente dentro de una carpeta de entrada:

src="/srv/docs/incoming"
out="/srv/docs/converted"

mkdir -p "$out"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "$out" "$src"/*.docx

Bash expande *.docxlos argumentos de archivo por separado antes de iniciar LibreOffice. Dado que cada ruta se pasa como un argumento, se conservan los espacios en los nombres de directorios y archivos. El PDF resultante conserva la raíz del nombre del archivo original, por lo que Annual Report.docxse convierte en Annual Report.pdf. El comando procesa solo los archivos de esa carpeta; no busca en las subcarpetas.

Para la primera ejecución, utilice una carpeta vacía. Antes de ejecutar el comando con comodines, compruebe que la carpeta de entrada contiene los archivos deseados y que dispone de suficiente espacio en disco para los PDF. En Bash, un comodín sin coincidencia puede permanecer literal a menos que configure las opciones del intérprete de comandos; si la carpeta pudiera estar vacía, compruebe primero que contenga al menos un archivo DOCX o utilice el bucle por archivo que se describe en la siguiente sección.

3. Utilice un bucle para carpetas grandes o para el manejo explícito de errores.

Un intérprete de comandos puede rechazar una lista de argumentos muy larga cuando una carpeta contiene miles de documentos. Un bucle evita enviar todos los nombres de archivo al sistema operativo en un solo comando y maneja los espacios de forma segura cuando las rutas están entre comillas:

src="/srv/docs/incoming"
out="/srv/docs/converted"
mkdir -p "$out"

found=false
for file in "$src"/*.docx; do
  [ -f "$file" ] || continue
  found=true
  soffice --headless --convert-to pdf:writer_pdf_Export --outdir "$out" "$file" || {
    printf 'Conversion failed: %s\n' "$file" >&2
  }
done
[ "$found" = true ] || { echo 'No DOCX files found.' >&2; exit 1; }

El forbucle entre comillas maneja nombres de archivo con espacios y no envía la lista completa de archivos como un único argumento extenso. Realiza una conversión de LibreOffice por archivo, por lo que puede tardar más que el comando con un solo comodín. Solo analiza los archivos que se encuentran directamente dentro de la carpeta de entrada. Para incluir subcarpetas, utilice una búsqueda recursiva de archivos y conserve cada carpeta de entrada en el diseño de salida; de lo contrario, dos archivos con el mismo nombre base pueden generar nombres de PDF que entran en conflicto.

4. Convertir una carpeta en Windows PowerShell

En PowerShell, pase cada ruta completa como un único argumento. El siguiente bucle informa sobre los archivos para los que LibreOffice devuelve un código de salida distinto de cero:

$soffice = 'C:\Program Files\LibreOffice\program\soffice.exe'
$inputDir = 'C:\Documents\incoming'
$outputDir = 'C:\Documents\converted'

New-Item -ItemType Directory -Force -Path $outputDir | Out-Null
$files = Get-ChildItem -LiteralPath $inputDir -Filter '*.docx' -File
if ($files.Count -eq 0) {
    throw "No DOCX files found in $inputDir"
}

$failed = @()
foreach ($file in $files) {
    & $soffice --headless --convert-to pdf:writer_pdf_Export --outdir $outputDir $file.FullName
    if ($LASTEXITCODE -ne 0) {
        $failed += $file.FullName
    }
}
if ($failed.Count -gt 0) {
    Write-Warning "Review failed conversions: $($failed -join '; ')"
}

Modifique esta configuración $sofficesi LibreOffice está instalado en otra ubicación. Get-ChildItemEl ejemplo de PowerShell no es recursivo; agréguelo -Recursesolo si también ha planificado cómo evitar nombres de salida duplicados en carpetas anidadas. Un código de salida distinto de cero es una advertencia útil, pero no reemplaza la verificación de que cada PDF esperado exista y se abra correctamente.

5. Evita conflictos de perfil y suprime sorpresas.

LibreOffice necesita permisos de escritura para su perfil de usuario. Si ya hay una ventana interactiva de LibreOffice abierta, una conversión desde la línea de comandos podría reutilizar esa instancia o esperar a que el perfil esté bloqueado. Cierre las demás ventanas de LibreOffice antes de ejecutar una tarea puntual. Para la automatización o las tareas que deben ejecutarse por separado, asigne a la conversión un perfil de usuario dedicado con la -env:UserInstallationopción de arranque. LibreOffice documenta la opción para seleccionar un perfil distinto al predeterminado.

soffice -env:UserInstallation=file:///tmp/lo-bulk-profile \
  --headless --convert-to pdf:writer_pdf_Export \
  --outdir "/srv/docs/converted" "/srv/docs/incoming/Annual Report.docx"

Utilice un directorio de perfil con permisos de escritura para la cuenta que ejecuta la conversión. No ejecute dos procesos de LibreOffice simultáneamente con el mismo perfil; utilice un perfil diferente para cada proceso concurrente. Mantenga la automatización en modo serial hasta que haya probado la versión instalada y la configuración de almacenamiento.

No ejecute una conversión en una carpeta de producción sin antes decidir cómo se gestionarán los archivos PDF existentes. Realice copias de seguridad o mueva los resultados anteriores, o escriba en un directorio nuevo con marca de tiempo. Una exportación por lotes no debe reemplazar silenciosamente un PDF firmado, aprobado o revisado previamente.

6. Solución de problemas comunes en la conversión de lotes

  • No se encontraron archivos de salida: verifique el patrón de entrada o el filtro de PowerShell, ponga entre comillas las rutas que contengan espacios y confirme que el directorio de salida existe y tiene permisos de escritura. Vuelva a ejecutar la prueba de archivo único para diferenciar un problema de ruta de un problema de procesamiento por lotes.
  • El comando finaliza, pero faltan algunos archivos: compruebe la salida de la terminal y el estado de salida, y luego compare la lista de origen con los PDF creados. Un archivo DOCX dañado o protegido con contraseña podría necesitar reparación o apertura manual antes de la conversión.
  • LibreOffice se bloquea o indica que un perfil está bloqueado: cierre cualquier proceso interactivo de LibreOffice o vuelva a intentarlo con un -env:UserInstallationperfil dedicado. No elimine un directorio de perfil mientras LibreOffice lo esté utilizando.
  • Las fuentes o la paginación difieren de Word: instale las fuentes necesarias y compare un PDF representativo con el original. Para documentos donde la reproducción exacta de Word es importante por contrato, verifique el diseño en la aplicación de autoría o en un servicio de renderizado autorizado.
  • Los archivos PDF existentes permanecen sin cambios: conviértalos a una carpeta de salida vacía y confirme que el comando apunta a ella. Evite asumir que al volver a ejecutar un lote siempre se sobrescribe un PDF anterior.

LibreOffice también acepta opciones de exportación a PDF después del nombre del filtro, como rangos de páginas o ajustes relacionados con la accesibilidad. Estas opciones son útiles cuando todos los archivos deben tener el mismo comportamiento de exportación, pero pruébelas en una muestra antes de aplicarlas a un lote. Consulte los parámetros oficiales de la línea de comandos para la exportación a PDF .

7. Verificar el lote terminado

No juzgue el éxito únicamente por si el comando regresó al indicador de comandos. Compare la cantidad de archivos DOCX de origen con la cantidad de archivos PDF en la carpeta de salida y, a continuación, inspeccione algunos archivos PDF de diferentes partes del lote. Confirme que cada uno se abre, tiene el número de páginas esperado e incluye la última página, tablas, imágenes, encabezados, pies de página y caracteres como letras o símbolos acentuados.

En Linux, puedes contar los archivos de entrada y salida no recursivos con:

find "/srv/docs/incoming" -maxdepth 1 -type f -iname '*.docx' | wc -l
find "/srv/docs/converted" -maxdepth 1 -type f -iname '*.pdf' | wc -l

La coincidencia de recuentos es una primera comprobación útil, pero no una prueba de que todos los archivos sean correctos. Si los recuentos difieren, compare los nombres de archivo para identificar las conversiones faltantes. Para flujos de trabajo de alto volumen o regulados, registre cada ruta de origen, código de retorno, ruta de salida y resultado de validación, y conserve los archivos de origen hasta que se hayan revisado los PDF. El flujo de trabajo de línea de comandos de LibreOffice elimina la exportación manual repetitiva, mientras que una validación independiente detecta los problemas de formato y de nivel de archivo que la automatización no puede determinar de forma fiable por sí sola.

Dejar un comentario

Cómo mover una imagen en Microsoft Word

Cómo mover una imagen en Microsoft Word

Aprende a arrastrar una imagen en Word, a elegir el ajuste de texto, a mantenerla dentro de un párrafo o a fijarla en la página, y a solucionar problemas con imágenes que no se mueven.

Cómo insertar una casilla de verificación en Excel: dos métodos sencillos

Cómo insertar una casilla de verificación en Excel: dos métodos sencillos

Aprende a insertar una casilla de verificación en Excel con la herramienta "En celda", a contar los elementos seleccionados con fórmulas o a agregar un control de formulario vinculado en versiones de escritorio anteriores.

Cómo autocompletar letras en Excel: de la A a la Z y más allá

Cómo autocompletar letras en Excel: de la A a la Z y más allá

Genere letras de la A a la Z, letras minúsculas o etiquetas más allá de la Z en Excel con una fórmula de controlador de relleno, una SECUENCIA o una lista personalizada reutilizable.

Cómo tachar texto en Excel: Atajos y métodos paso a paso

Cómo tachar texto en Excel: Atajos y métodos paso a paso

Aprende a tachar texto en Excel para Windows, Mac y la web, a dar formato a parte de una celda y a eliminar la línea sin borrar su valor.

¿Qué es Microsoft Access? ¿Cómo funcionan sus herramientas de base de datos?

¿Qué es Microsoft Access? ¿Cómo funcionan sus herramientas de base de datos?

Microsoft Access es una aplicación de base de datos para Windows que permite almacenar registros relacionados, crear consultas, generar formularios de entrada de datos y crear informes. Descubra cómo funciona y cuándo es la opción más adecuada.

Importación y exportación de Office Outlook 2010: Transferencia de datos con un archivo PST

Importación y exportación de Office Outlook 2010: Transferencia de datos con un archivo PST

Aprende a importar un archivo PST a Outlook 2010 o a exportar correo electrónico, contactos, calendario y tareas. Sigue los menús correctos y evita carpetas faltantes o duplicadas.

Cambiar la altura y el ancho de las líneas de cuadrícula en Word 2010

Cambiar la altura y el ancho de las líneas de cuadrícula en Word 2010

Aprenda a ajustar la altura y el ancho de las líneas de cuadrícula en Word 2010, cambiar la frecuencia de las líneas visibles y establecer el espaciado horizontal y vertical subyacente de la cuadrícula de dibujo.

Recuperar una contraseña de Outlook PST con Nucleus Kernel

Recuperar una contraseña de Outlook PST con Nucleus Kernel

Recupere una contraseña olvidada de un archivo PST de Outlook siguiendo los pasos actuales de Kernel, que incluyen cómo identificar el archivo correcto, realizar una copia de seguridad y comprobar los límites de la herramienta.

Cómo insertar una página web en vivo en una diapositiva de PowerPoint

Cómo insertar una página web en vivo en una diapositiva de PowerPoint

Utilice el complemento LiveWeb para insertar un sitio web en una diapositiva de PowerPoint, configurar su tamaño y comportamiento de actualización, y comprobar la compatibilidad antes de la presentación.

Agrega los días festivos nacionales a tu calendario de Outlook.

Agrega los días festivos nacionales a tu calendario de Outlook.

Agregue días festivos específicos de cada país en la nueva versión de Outlook, Outlook en la web o la versión clásica de Outlook. Aprenda cómo evitar eventos duplicados y compruebe si faltan fechas de 2026-2027.