Use OpenOffice desde la línea de comando para convertir HTML a RTF

8

Estoy tratando de construir un script bash en Cygwin que convierta archivos HTML a RTF. En OS X esto es trivial textutils, pero eso no existe para Linux o Cygwin normales. En cambio, estoy tratando de usar OpenOffice desde la línea de comandos.

He leído en otra parte que OpenOffice puede ejecutarse sin cabeza con un programa normalmente instalado como /usr/bin/ooffice, pero en Cygwin en Windows esto obviamente no funciona: el instalador de OpenOffice no construye enlaces simbólicos nativos de Cygwin y puede que ni siquiera instale el equivalente de Windows ooffice.

¿Cómo puedo usar OpenOffice desde la línea de comandos en Cygwin para convertir archivos HTML a archivos RTF?

Andrés
fuente

Respuestas:

4

Hay un script de shell realmente útil llamado unoconvque maneja la conversión de cualquier archivo desde y hacia cualquier formato de archivo que sea compatible con OpenOffice / LibreOffice. Puede leerlo en su sitio y asegúrese de visitar la página de manual . Muchas distribuciones tienen paquetes que puedes instalar fácilmente, incluido, creo, cygwin.

Una vez que lo tenga instalado, el uso en su caso significaría especificar un archivo html de entrada y un archivo rtf de salida como este:

unoconv file.html file.rtf

Todo listo :)

Por supuesto, esto también podría ser programado para manejar múltiples situaciones de archivos. Si está utilizando zsh, podría ejecutar algo como esto para convertir una carpeta completa de archivos html:

for file in *html; do
    unoconv "$file" "${file/html/rtf}"
done
Caleb
fuente
@ Andrew Espero que lo encuentres útil, pero no es exactamente nuevo. El repositorio git del proyecto se remonta a 2007, y esa fue una importación de algún sistema de control de versiones desde el que migraron.
Caleb
Hmm Eché de menos eso al mirar. Supuse que era nuevo ya que mencionaba trabajar con configuración cero en OS X en LO 3.6.x, que acaba de salir recientemente. De todos modos, es increíble :)
Andrew
6

Sugeriría el JODConverter . Es un contenedor de Java alrededor de la API OpenDoc para la conversión. Le permite convertir archivos como este:

java -jar jodconverter-cli-2.2.0.jar foo.html foo.rtf

También está disponible en python .

en lugar de usar la clase Openoffice SDK DocumentSaver como esta:

java -classpath .;./bin;\
                $OO/program/classes/jurt.jar;\
                $OO/program/classes/ridl.jar;\
                $OO/program/classes/sandbox.jar;\
                $OO/program/classes/unoil.jar;\
                $OO/program/classes/juh.jar  \
    DocumentSaver uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager  file:///C:/test/foo.html file:///C:/test/foo.rtf
DaveParillo
fuente
1
Seguí adelante con una variación de esto. Al principio fui con Python y mantuve OpenOffice ejecutándose como un servidor en segundo plano, pero luego encontré Pyth ( pypi.python.org/pypi/pyth ) un convertidor puramente basado en Python. Es minimalista, pero funciona muy bien.
Andrew
¿Todavía tiene que instalar realmente OOo, o las bibliotecas "wrapper" incluyen todo lo necesario? No veo ninguna mención explícita. Gracias.
humble_coder
1

Puedo ayudarte con la primera parte de tu pregunta. Aquí hay un ejemplo de ejecución de OpenOffice desde la línea de comandos de Cygwin:

/cygdrive/c/Program\ Files/OpenOffice.org\ 3/program/soffice.exe -help

Eso le dará una lista de argumentos de línea de comando. No vi ninguno que pudiera convertir tipos de archivos o incluso "Guardar como", pero no investigué la API. Quizás puedas completar esa parte. Tengo OpenOffice.org 3.2 320m12 (Build: 9483).

garyjohn
fuente