Usa OpenOffice dalla riga di comando per convertire HTML in RTF


8

Sto cercando di creare uno script bash in Cygwin che convertirà i file HTML in RTF. In OS X questo è banale textutils, ma non esiste per Linux o Cygwin normali. Invece sto cercando di usare OpenOffice dalla riga di comando.

Ho letto altrove che OpenOffice può funzionare senza testa con un programma normalmente installato come /usr/bin/ooffice, ma in Cygwin sotto Windows questo ovviamente non funziona: il programma di installazione di OpenOffice non crea collegamenti simbolici Cygwin nativi e potrebbe non installare nemmeno l'equivalente di Windows ooffice.

Come posso usare OpenOffice dalla riga di comando in Cygwin per convertire i file HTML in file RTF?

Risposte:


4

C'è uno script shell davvero utile chiamato unoconvche gestisce la conversione di qualsiasi file da e verso qualsiasi formato di file supportato da OpenOffice / LibreOffice. Puoi leggerlo sul suo sito ed essere sicuro di controllare la pagina man . Molte distribuzioni hanno dei pacchetti che puoi installare facilmente, incluso, credo, Cygwin.

Una volta installato, l'utilizzo nel tuo caso significherebbe specificare un file html di input e un file rtf di output come questo:

unoconv file.html file.rtf

Tutto fatto :)

Naturalmente questo potrebbe essere programmato per gestire anche più situazioni di file. Se stai usando zsh, potresti eseguire qualcosa del genere per convertire un'intera cartella di file html:

for file in *html; do
    unoconv "$file" "${file/html/rtf}"
done

@Andrew Spero che lo trovi utile, ma non è esattamente nuovo. Il repository git del progetto risale al 2007 e si trattava di un'importazione da alcuni sistemi di controllo di versioni superiori da cui sono migrati.
Caleb,

Hmm. Mi è mancato quando guardavo. Ho ipotizzato che fosse nuovo poiché menzionava il funzionamento con configurazione zero su OS X su LO 3.6.x, che è appena uscito di recente. Indipendentemente da ciò, è fantastico :)
Andrew

6

Vorrei suggerire il JODConverter . È un wrapper Java attorno all'API OpenDoc per la conversione. Ti permette di convertire file come questo:

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

È disponibile anche in Python .

invece di usare la classe DocumentSaver di SDK openoffice in questo modo:

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

1
Sono andato avanti con una variazione di questo. All'inizio sono andato con Python e ho tenuto OpenOffice in esecuzione come server in background, ma poi ho trovato Pyth ( pypi.python.org/pypi/pyth ) un convertitore puramente basato su Python. È minimalista, ma funziona benissimo.
Andrew,

È ancora necessario installare effettivamente OOo o le librerie "wrapper" includono tutto il necessario? Non vedo alcuna menzione esplicita. Grazie.
humble_coder

1

Posso aiutarti con la prima parte della tua domanda. Ecco un esempio di esecuzione di OpenOffice dalla riga di comando di Cygwin:

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

Questo ti darà un elenco di argomenti della riga di comando. Non ho visto nessuno che potesse convertire i tipi di file o addirittura "Salva con nome", ma non ho cercato l'API. Forse puoi compilare quella parte. Ho OpenOffice.org 3.2 320m12 (build: 9483).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.