Используйте OpenOffice из командной строки для преобразования HTML в RTF

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?

Эндрю
источник

Ответы:

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
Калеб
источник
@ Андрей, надеюсь, вы найдете это полезным, но это не совсем новое. В Git проекта хранилища восходит к 2007 году, и это был импорт из некоторой над системой контроля версий , что они мигрировали из.
Калеб
Хм. Я пропустил это, глядя. Я предположил, что это было новым, так как он упомянул работу с нулевой конфигурацией на OS X на LO 3.6.x, который только недавно вышел. Несмотря на это, это круто :)
Эндрю
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
DaveParillo
источник
1
Я пошел вперед с вариацией этого. Сначала я работал с Python и оставлял OpenOffice запущенным в качестве фонового сервера, но потом я обнаружил, что Pyth ( pypi.python.org/pypi/pyth ) - это чисто Python-конвертер. Это минималистично, но прекрасно работает.
Эндрю
Вам все еще нужно установить OOo или библиотеки «обертки» включают в себя все необходимое? Я не вижу явного упоминания. Спасибо.
humble_coder
1

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

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

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

garyjohn
источник