Cómo convertir por lotes .doc o .docx a .pdf

18

Necesito convertir por lotes un conjunto de .doco .docxarchivos .pdfen la terminal, no usando una GUI

Sería útil si pudiera procesar por lotes múltiples archivos.

También me gustaría mantener tantos metadatos como sea posible.

Cola de anillo
fuente
La mejor respuesta es instalar otra aplicación y usar una "impresora pdf". Lo que está mal usando un método CLI o perderé los metadatos
Ringtail
No dije que hubiera algo malo con oowriter, gscan2pdf o cualquier otro método GUI. Estaba buscando la CLI y luego tengo la intención de incorporarla al .bashrc para poder pdf ~/some_.docx, eso es todo. Gracias por la sugerencia.
Ringtail
1
Ver también esta respuesta .
Takkat
@Takkat: esa respuesta lo pone en una zona duplicada para mí.
RobotHumans

Respuestas:

28

lowriter se puede usar como una herramienta de línea de comandos (lowriter es parte de 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

No tengo Windows, así que descargue testdoc desde aquí

www.mltweb.com/prof/testdoc.doc

Pantera
fuente
libreofice arroja errores usando este método, se queja de no encontrar /home/user/documents/test.docx blah
Ringtail
¿Qué comando usaste? ¿Tienes un test.docx?
Panther
1
¡Funciona perfecto para mí! Tenga cuidado con el uso del carácter "espacio" desde la línea de comandos ... Cuando llegue al carácter espacio, simplemente presione "tab";)
Pitto
1
lowriter no convierte archivos docx correctamente. Al menos no siempre.
Escéptico Jule
1
Cuando probé por primera vez el lowritercomando sugerido en Ubuntu 12.04, se abrió una ventana de bienvenida y se congeló. Lo maté con Cc e intenté nuevamente sin una DISPLAYvariable. Esta vez imprimió un error por falta de visualización, pero convierte el documento sin ningún problema. ¿Es el comportamiento esperado que el comando solo pueda funcionar sin una DISPLAYvariable de entorno?
Kasperd
7

Yo uso unoconv, que convierte todos los formatos compatibles con LibreOffice.

Francisco Dreyfuss
fuente
1
Solo para el registro: $ unoconv myfile.docx(crea myfile.pdf)
tokland
3

Yo uso el siguiente script:

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

--headhead evitará que Libreoffice abra cientos de archivos y finalmente se bloquee si intenta esto con directorios que contienen muchos archivos .doc

Bruni
fuente
0

En mi opinión, la mejor manera es con unoconv.

Primero instale el paquete:

sudo apt install unoconv

y luego convertir a pdf usando este comando:

unoconv -f pdf XXYY.docx

(Reemplace XXYY.docxcon el nombre de su archivo).

usuario882893
fuente
¿Por qué elegirías unoconv sobre otras opciones?
gatorback