15

Tengo un poco de documentación escrita en OpenOffice, y me gustaría incluir parte de ella como archivos PDF en las entregas finales de la compilación. Me gustaría hacer esto con el script de compilación automatizado.Creación de PDF de la línea de comandos de OpenOffice

¿Hay alguna manera de crear un archivo PDF desde OpenOffice con un comando de línea de comando?

Respuesta

12

Art of Solving tiene también una muy buena API para realizar la conversión en Java. Es un poco lento, pero es bastante simple. Así es como lo uso:

 File inputFile = new File("C:\\oreyes\\hola.doc"); 
     File outputFile = new File("C:\\oreyes\\hola.pdf"); 
     OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100); 
     try { 
      connection.connect(); 
     } catch(Exception e) {} 

     DocumentConverter converter = new OpenOfficeDocumentConverter(connection); 
     converter.convert(inputFile, outputFile); 
     connection.disconnect(); 

Puede crear un jar con eso y procesarlo desde la línea de comandos.

+1

Did misma manera que usted describe, pero especifica 'OpenOfficeConnection officeConnection = new SocketOpenOfficeConnection ("my_local_vm_ip", 8100);', pero me da un error todo el tiempo. 'Excepción en el hilo" principal "com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException: conversión fallida: no se pudo cargar el documento de entrada' – Eugene

+0

Si desea exportar con ciertas opciones (por ejemplo, PDF etiquetado), primero debe configurarlas en OpenOffice o LibreOffice? –

16

Hay una gran herramienta llamada "unoconv", que estaba en mi repositorio de Ubuntu. Convierte ODF, .ods, ... a PDF y creo que a otros formatos también.

También podría convertir archivos de PowerPoint a PDF.

+0

funcionó como un encanto, gracias! –

1

Hay anytopdf. No lo he probado yo mismo.

Citando ...

anytopdf is a perl script that converts OpenOffice.org, Microsoft Office (Word DOC, Excel XLS), RTF, HTML, and other openoffice.org readable file formats to the PDF format. It will automatically install the supporting 'AnyToPDF' OpenOffice.org Basic macro library in the current user's OpenOffice.org configuration if it's not already present.

Dedicated to peace, love, understanding and respect for all beings.

28

A partir de septiembre de 2012, LibreOffice puede convertir un documento a PDF desde la línea de comandos:

lowriter --headless --convert-to pdf yourfile.odt 

También cuenta con el apoyo de conversión a granel:

lowriter --headless --convert-to pdf yourfiles*.odt 

convertirá todos los archivos que coinciden con el patrón en el archivo PDF correspondiente.

No debe haber ventanas de LibreOffice abiertas cuando ejecuta este comando.

+0

Eso es muy limpio. ¿Sabes si hay una forma de actualizar una tabla de contenido antes de hacer la conversión? –

+0

He logrado convertir imágenes, documentos de Word, hojas de cálculo. Funciona de maravilla. –

+1

Esta solución es muy sólida pero un poco lenta. Solo un poco de información para cualquiera que lo considere, a partir de la versión 4.1.0.4, un archivo bastante básico se está convirtiendo en 1800 ms. –

2

Aunque esta pregunta es un poco viejo, aquí algo para el propósito de documentar algunos errores comunes con la solución de LibreOffice:

  • Si lowriter no funciona para usted, porque no tiene en cuenta los parámetros de línea de comando y hace subir la GUI sólo tratar de llamar a los libreoffice o loffice binarios:

    loffice --headless --convert-to pdf yourfile.odt

  • Si recibe este mensaje

    Error: Please reverify input parameters...

    intenta ejecutarlo como root (por ejemplo, vía sudo). Esto me ayudó en Ubuntu 12.04 LTS con LibreOffice 3 instalado y también puede ser una razón por la cual esta conversión no se ejecuta en un servidor web sin la configuración adecuada (Libreoffice --headless refuses to convert unless root, won't work from PHP script)

  • También asegúrese de que no tenga otras instancias de LibreOffice ejecutándose o simplemente fallará silenciosamente y no hará ninguna conversión.

Cuestiones relacionadas