¿Cómo puedo convertir un documento OpenOffice a PDF desde la línea de comandos de Linux?

Tengo estudiantes que, cuando se les pide PDF, a veces me dan un documento de OpenOffice o una hoja de cálculo. file(1) puede identificar estos documentos, pero no he podido descubrir cómo convertirlos a PDF utilizando la línea de comandos. (La página de ooffice(1) de ooffice(1) enumera una opción para imprimir un documento, pero no para convertirlo a PDF.) Google no es útil, excepto por darme la sensación incómoda de que esto no se puede hacer sin un guión hábil en un idioma I No sé contra una API cuya documentación no puedo encontrar.

¿Puede alguien ayudarme a resolver el problema de convertir un OpenDocument a PDF usando sólo la línea de comandos de Unix?

Creo que la forma más sencilla sería configurar una impresora pdf en su caja y luego sólo:

ooffice -pt pdfprinter studentwhodoesntfollowdirectionswell.odt

Edit: Acabo de encontrar un post en los foros de Ubuntu con alguien que llegó a la misma solución que he sugerido (con instrucciones dandy práctico). Impresión a pdf desde la línea de comandos [SOLVED]

Editar 2: Acabo de encontrar unoconv que es un script de python que utiliza enlaces UNO de OOo. Así que sólo quería actualizar esta respuesta

Hago esto usando tazas-pdf . Tendrá que tener OpenOffice instalado, y tiene que ejecutar ooffice en modo decapitado para que la aplicación no inicie una GUI.

La impresora PDF suele estar en los repositorios, por lo que simplemente sudo apt-get install cups-pdf o yum install cups-pdf .

A continuación, deberá instalar la impresora. Si lo desea, puede instalar una impresora a través de la línea de comandos .

Si instala una impresora a través de la GUI, (en Ubuntu) es tan fácil como Sistema -> Administración -> Impresión . Haga clic en la flecha y seleccione Nueva impresora :

texto alternativo

Ir a través del asistente y tomar nota de lo que el nombre de su impresora, lo necesitará desde la línea de comandos. Como puedes ver, he usado tazas-pdf:

texto alternativo

Termine el asistente y estará listo para convertir. Abrir un terminal y ejecutar:

 ooffice -headless -nologo -pt cups-pdf doc.odt 

Bajo su directorio de inicio tendrá una carpeta PDF. El interior será su documento convertido.

$ Oowriter –convert-to pdf –invisible name.odt

Eso es todo. Si su CLI es gráfica, puede omitir la opción "–invisible". Probado en opensuse 12.3.

Con el libreoffice que viene con CentOS 7 (4.1.4):

 soffice --headless --convert-to pdf file.odt soffice --headless --convert-to doc file.odt soffice --headless --convert-to html file.odt 

Soffice y libreoffice es el mismo binario querido el uno al otro. Oowriter es script que llama libreoffice –writer. Así que lo anterior debería funcionar para todos los derivados staroffice (libreoffice, openoffice).

Lo uso para convertir cientos de documentos / día, funciona bien.