web-dev-qa-db-ja.com

コマンドラインからOpenOfficeを使用して、HTMLをRTF

HTMLファイルをRTFに変換するbashスクリプトをCygwinで作成しようとしています。 OS Xでは、これはtextutilsで簡単ですが、通常のLinuxやCygwinには存在しません。代わりに、コマンドラインからOpenOfficeを使用しようとしています。

OpenOfficeは通常/usr/bin/oofficeとしてインストールされるプログラムでヘッドレスで実行できることを他の場所で読みましたが、WindowsのCygwinでは、これは明らかに機能しません。OpenOfficeインストーラーはネイティブのCygwinシンボリックリンクを構築せず、 oofficeに相当するWindows。

CygwinのコマンドラインからOpenOfficeを使用してHTMLファイルをRTFファイルに変換するにはどうすればよいですか?

8
Andrew

OpenOffice/LibreOfficeがサポートするファイル形式との間のファイルの変換を処理するunoconvと呼ばれる非常に便利なシェルスクリプトがあります。 そのサイト でそれについて読むことができ、 manページ を必ずチェックしてください。 cygwinなど、多くのディストリビューションには、簡単にインストールできるパッケージがあります。

インストールしたら、この場合の使用法は、次のように入力htmlファイルと出力rtfファイルを指定することを意味します。

unoconv file.html file.rtf

全部終わった :)

もちろん、これは複数のファイルの状況を処理するようにスクリプト化することもできます。 zshを使用している場合は、次のようなものを実行して、htmlファイルのフォルダー全体を変換できます。

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

JODConverter をお勧めします。これは、変換用のOpenDocApiのJavaラッパーです。次のようにファイルを変換できます。

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

python でも利用できます。

openoffice SDKDocumentSaver クラスを次のように使用する代わりに:

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
6
DaveParillo

私はあなたの質問の最初の部分を手伝うことができます。 CygwinコマンドラインからOpenOfficeを実行する例を次に示します。

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

これにより、コマンドライン引数のリストが表示されます。ファイルタイプや「名前を付けて保存」を変換するものは見当たりませんでしたが、APIについては調査しませんでした。おそらくあなたはその部分を埋めることができます。私はOpenOffice.org3.2 320m12(Build:9483)を持っています。

1
garyjohn