Use o OpenOffice a partir da linha de comando para converter HTML em RTF

8

Estou tentando criar um script bash no Cygwin que converterá arquivos HTML em RTF. No OS X isso é trivial com textutils , mas isso não existe para o Linux regular ou o Cygwin. Em vez disso, estou tentando usar o OpenOffice na linha de comando.

Li em outro lugar que o OpenOffice pode ser executado sem problemas com um programa normalmente instalado como /usr/bin/ooffice , mas no Cygwin no Windows isso obviamente não funciona - o instalador do OpenOffice não constrói links simbólicos nativos do Cygwin e nem instala o equivalente do Windows de ooffice .

Como posso usar o OpenOffice a partir da linha de comando do Cygwin para converter arquivos HTML em arquivos RTF?

    
por Andrew 30.07.2010 / 18:00

3 respostas

4

Existe um script de shell realmente útil chamado unoconv que manipula a conversão de quaisquer arquivos de e para qualquer formato de arquivo suportado pelo OpenOffice / LibreOffice. Você pode ler sobre isso em seu site e não se esqueça de verificar o página do manual . Muitas distros têm pacotes para isso que você pode instalar facilmente, incluindo, acredito, o cygwin.

Uma vez que você o tenha instalado, o uso em seu caso significaria especificar um arquivo html de entrada e um arquivo rtf de saída como este:

unoconv file.html file.rtf

Tudo pronto:)

É claro que isso pode ser roteirizado para lidar com várias situações de arquivos também. Se você estiver usando zsh , pode executar algo assim para converter uma pasta inteira de arquivos html:

for file in *html; do
    unoconv "$file" "${file/html/rtf}"
done
    
por 21.09.2012 / 09:01
6

Eu sugeriria o JODConverter . É um wrapper java em torno do OpenDoc Api para conversão. Permite converter arquivos assim:

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

Também está disponível em python .

em vez de usar o openoffice SDK DocumentSaver classe 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
    
por 31.07.2010 / 01:07
1

Eu posso ajudar com a primeira parte da sua pergunta. Aqui está um exemplo de como executar o OpenOffice a partir da linha de comando do Cygwin:

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

Isso lhe dará uma lista de argumentos de linha de comando. Não vi nenhum que convertesse tipos de arquivo ou até mesmo "Salvar como", mas não pesquisei a API. Talvez você possa preencher essa parte. Eu tenho o OpenOffice.org 3.2 320m12 (Build: 9483).

    
por 30.07.2010 / 21:08