Convertir formatos de archivos con la ayuda de OpenOffice

Me gusta mucho encontrar soluciones fáciles, rápidas y basadas en software libre que son, trivialmente, mucho mas flexibles que las provistas por el software propietario.

Hace poco tuvimos un problema, como convertir archivos de formato ODT a DOC.  La mejor solución sería una que evitara la necesidad de ejecutar OpenOffice y abrir manualmente a cada uno de los archivos, seleccionar Guardar Como, modificar el formato y …

Esta es la mejor solución que encontré a ese problema basado en la aplicación JodConverter y Java (requiere al JRE por lo menos).  Ver los formatos soportados.

Descargue a JODConverter de la siguiente ubicación.

http://sourceforge.net/project/showfiles.php?group_id=91849

Descomprima y ubique al directorio /lib en un directorio de su preferencia.

Ejecute a OpenOffice como un servicio.  Sólo se debe ejecutar una única vez durante el procedimiento.

$ JAVA_HOME=/usr/local/java ; export JAVA_HOME
$ PATH=$JAVA_HOME/bin:$PATH ; export PATH

$ soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

Ejecute el convertidor invocando al siguiente comando.

$ java -jar lib/jodconverter-cli-2.2.1.jar ARCHIVO_ORIGEN.EXTENSIÓN ARCHIVO_DESTINO.EXTENSIÓN

Por ejemplo, para convertir al archivo tesis.odt a su correspondiente tesis.doc se deberá ejecutar el siguiente comando.

$ java -jar lib/jodconverter-cli-2.2.1.jar tesis.odt tesis.doc

Téngase en cuenta las particularidades de estarse utilizando la versión 2.2.1 de JODConverter y de estar situados en el directorio inmediatamente superior al sitio donde se descomprimió el directorio /lib.

Para Windows el procedimiento es similar.

dos> SET RUTA="C:Archivos de programaOpenOffice.org 2.4program"
dos> %RUTA%soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
dos> java -jar lib/jodconverter-cli-2.2.1.jar ARCHIVO_ORIGEN.EXTENSIÓN ARCHIVO_DESTINO.EXTENSIÓN

Mejor aún, si se desea, es posible realizar una conversión en batch de múltiples archivos mediante el siguiente comando.

$ java -jar lib/jodconverter-cli-2.2.1.jar -f EXTENSIÓN_ORIGEN *.EXTENSIÓN_DESTINO

Por ejemplo, para convertir a todos los archivos ODT en PDF se debe ejecutar la siguiente instrucción.

$ java -jar lib/jodconverter-cli-2.2.1.jar -f pdf *.odt

Se podrá realizar una tarea similar, en batch y desde línea de comando con MS Word ? Voy a investigar.

8 thoughts on “Convertir formatos de archivos con la ayuda de OpenOffice”

  1. Hola

    He hecho exactamente lo que dices en el post (por cierto, muy bueno) pero creo que hay un problema con los acentos y las ñ’s, me salen caracteres extraños, lo curioso es que cuando copias y pegas del PDF a otra fuente salen correctamente.

    ¿ Alguna idea de que falta para que salga correctamente ?

  2. No hay nada como guisarselo uno mismo
    La solucion al problema que antes comento está en establecer la variable de entorno LANG=es_ES (por ejemplo)
    Espero que sea de utilidad para alguien

  3. Hola.
    Puse la variable de entorno LANG=es_ES y sigo con los mismos problemas. Además, como prueba, cambié el charset del contenido de la página a UTF-8 o a ISO-8859-1 y pasa lo mismo. Es como que no le importa que ponga.
    Por favor, si alguién puede ayudarme, estaría realmente agradecido.
    Saludos

  4. Hola. Me ocurren problemas con los acentos y demás carecteres no comunes al transformar un rtf a pdf. He probado la solución que indican (la de setear la variable de entorno LANG=es_ES ) pero sigo teniendo el mismo problema. Si alguien ha resuelto el problema, le agredecería que lo publicara.
    Saludos

  5. Amigo, de antemano muchas gracias por el articulo, me sirvio muchisimo, pero me asalta una duda, si deseo generar los pdf con el estandar pdf/a, como se podría generar, he revisado que en el openoffice usandolo normalmente ya tiene un checkbox para agregarle dicha caracteristica, me gustaria saber si es posible hacerlo por linea de comandos.

    De antemano Muchas Gracias….!!!!

Leave a Reply

Your email address will not be published. Required fields are marked *