HTMLファイルをRTFに変換するbashスクリプトをCygwinで作成しようとしています。 OS Xでは、これはtextutils
で簡単ですが、通常のLinuxやCygwinには存在しません。代わりに、コマンドラインからOpenOfficeを使用しようとしています。
OpenOfficeは通常/usr/bin/ooffice
としてインストールされるプログラムでヘッドレスで実行できることを他の場所で読みましたが、WindowsのCygwinでは、これは明らかに機能しません。OpenOfficeインストーラーはネイティブのCygwinシンボリックリンクを構築せず、 ooffice
に相当するWindows。
CygwinのコマンドラインからOpenOfficeを使用してHTMLファイルをRTFファイルに変換するにはどうすればよいですか?
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
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
私はあなたの質問の最初の部分を手伝うことができます。 CygwinコマンドラインからOpenOfficeを実行する例を次に示します。
/cygdrive/c/Program\ Files/OpenOffice.org\ 3/program/soffice.exe -help
これにより、コマンドライン引数のリストが表示されます。ファイルタイプや「名前を付けて保存」を変換するものは見当たりませんでしたが、APIについては調査しませんでした。おそらくあなたはその部分を埋めることができます。私はOpenOffice.org3.2 320m12(Build:9483)を持っています。