Use o OpenOffice na linha de comando para converter HTML em RTF

8

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

Li em outro lugar que o OpenOffice pode ser executado sem controle com um programa normalmente instalado /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 pode nem instalar o equivalente do Windows ooffice.

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

Andrew
fonte

Respostas:

4

Existe um script shell realmente útil chamado unoconvque lida com a conversão de qualquer arquivo de e para qualquer formato de arquivo suportado pelo OpenOffice / LibreOffice. Você pode ler sobre isso em seu site e verifique a página do manual . Muitas distribuições possuem pacotes para você instalar com facilidade, incluindo, acredito, o cygwin.

Depois de instalado, o uso no seu caso significaria especificar um arquivo html de entrada e um arquivo rtf de saída como este:

unoconv file.html file.rtf

Tudo feito :)

Obviamente, isso também pode ser script para lidar com várias situações de arquivo. Se você estiver usando zsh, poderá executar algo parecido com isto para converter uma pasta inteira de arquivos html:

for file in *html; do
    unoconv "$file" "${file/html/rtf}"
done
Caleb
fonte
@ Andrew Espero que você ache útil, mas não é exatamente novo. O repositório git do projeto remonta a 2007 e foi uma importação de algum sistema de controle de versão sobre o qual eles migraram.
Caleb #
Hmm. Eu senti falta disso ao olhar. Eu assumi que era novo, pois mencionava trabalhar com configuração zero no OS X no LO 3.6.x, lançado recentemente. Independentemente disso, é :) incrível
Andrew
6

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

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

Também está disponível em python .

em vez de usar a classe 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
fonte
11
Fui em frente com uma variação disso. No começo, fui com o Python e mantive o OpenOffice em execução como servidor em segundo plano, mas depois encontrei o Pyth ( pypi.python.org/pypi/pyth ) um conversor puramente baseado em Python. É minimalista, mas funciona muito bem.
Andrew
Você ainda precisa instalar o OOo ou as bibliotecas "wrapper" incluem tudo o que é necessário? Não vejo menção explícita. Obrigado.
Humble_coder 19/09/11
1

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

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

Isso fornecerá uma lista de argumentos da 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 (Compilação: 9483).

garyjohn
fonte