8

Я пытаюсь создать bash-скрипт в Cygwin, который будет конвертировать HTML-файлы в RTF. В OS X это тривиально с textutils , но это не существует для обычного Linux или Cygwin. Вместо этого я пытаюсь использовать OpenOffice из командной строки.

В другом месте я читал, что OpenOffice может работать без программы с программой, обычно устанавливаемой как /usr/bin/ooffice , но в Cygwin под Windows это, очевидно, не работает - установщик OpenOffice не создает собственные символические ссылки Cygwin и может даже не устанавливать Windows-эквивалент ooffice .

Как я могу использовать OpenOffice из командной строки в Cygwin для преобразования файлов HTML в файлы RTF?

3 ответа3

6

Я бы предложил JODConverter. Это Java-оболочка вокруг OpenDoc Api для конвертации. Позволяет конвертировать файлы следующим образом:

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

Это также доступно в питоне.

вместо использования класса openoffice SDK DocumentSaver следующим образом:

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
4

Существует действительно удобный сценарий оболочки, называемый unoconv который обрабатывает преобразование любых файлов из любого формата и в любой формат, поддерживаемый OpenOffice/LibreOffice. Вы можете прочитать об этом на его сайте и обязательно загляните в справочную страницу. Многие дистрибутивы имеют пакеты для него, которые вы можете легко установить, в том числе, я полагаю, Cygwin.

Как только вы установите его, использование в вашем случае будет означать указание входного html-файла и выходного rtf-файла следующим образом:

unoconv file.html file.rtf

Все сделано :)

Конечно, это может быть написано в сценарии для обработки нескольких файловых ситуаций. Если вы используете zsh , вы можете запустить что-то вроде этого, чтобы конвертировать целую папку HTML-файлов:

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

Я могу помочь с первой частью вашего вопроса. Вот пример запуска OpenOffice из командной строки Cygwin:

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

Это даст вам список аргументов командной строки. Я не видел ни одного, который конвертировал бы типы файлов или даже "Сохранить как", но я не исследовал API. Возможно, вы можете заполнить эту часть. У меня OpenOffice.org 3.2 320m12(сборка:9483).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .