Використовуйте 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. Ви можете прочитати про це на його сайті і обов’язково ознайомитись зі сторінкою man . У багатьох дистрибутивах є пакети для нього, які ви можете легко встановити, включаючи, я вважаю, cygwin.

Після того, як ви встановите його, використання у вашому випадку означатиме визначення вхідного html-файлу та вихідного rtf-файлу таким чином:

unoconv file.html file.rtf

Все зроблено :)

Звичайно, це може бути написано і для обробки кількох ситуацій з файлами. Якщо ви використовуєте zsh, ви можете запустити щось подібне для перетворення цілої папки HTML-файлів:

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

@Andrew Я сподіваюся, що ви вважаєте це корисним, але це не зовсім нове. У 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

Він також доступний у python .

замість використання класу SDK DocumentSaver openoffice такого типу:

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
Я продовжив свою варіацію. Спочатку я пішов з 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).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.