最近のバージョンでは --convert-to というオプションが用意されていて もっと簡単に変換できるようです。
参考: 【LibreOffice】headlessでファイルコンバータとして使う【Output Fileter Name】 | 熊本でWEB開発もホームページ制作もしない(2013-11-30)
OpenOffice.org Writer の .odtファイルと Microsoft Word の .docファイルを CUIなバッチ処理で相互変換したり、 PDFに出力する方法。 できれば便利なのにと前々から思ってましたが、マクロを利用して実際できてしまうことが分かりました。
詳しくは元ネタである以下のリンク先を見ていただくとして、簡単に手順を紹介してみます。
XML.com: Moving to OpenOffice: Batch Converting Legacy Documents (1/2) XML.com: Moving to OpenOffice: Batch Converting Legacy Documents (2/2)
まずはメニューから
を選択して右側の「管理」をクリック。
「Standard」が選択された状態で右側の「新規作成」をクリックし、モジュール名を入力。
ここでは MyConversions としておきます。
MyConversions モジュールを選択して右側の「編集」をクリック。
OOo Basic のエディタが起動します。
最初から書かれている Sub Main
と End Main
という行は
消してしまっても大丈夫です。
http://www.xml.com/pub/a/2006/01/11/from-microsoft-to-openoffice.html
ここに載っているコードをコピーして貼り付け、 で保存。
ただし、このままでは日本語が含まれる文書は文字化けしてしまいますので
SaveAsDoc 内の以下の部分を修正します。
(変更前) oDoc.storeToURL( cURL, Array(_ MakePropertyValue( "FilterName", "MS WinWord 6.0" ),) (変更後) oDoc.storeToURL( cURL, Array(_ MakePropertyValue( "FilterName", "MS Word 97" ),)
しかるのちコマンドラインから次のように実行すると GUI画面を出さずに odt を doc(Microsoft Word 97 の形式)に変換できます。
"C:\Program Files\OpenOffice.org 2.0\program\soffice.exe" -invisible macro:///Standard.MyConversions.SaveAsDoc(c:\tempsample.odt)
環境なども含めてケースバイケースだと思いますが、数行の文字列だけのファイルで試したところ数秒で処理が済みました。
さらに、指定を変えることで他の変換処理も可能です。上記のコマンドライン行の最後の方を適宜変更してください。
doc → odt SaveAsOOO( 変換元 .docファイルのパス ) odt → PDF SaveAsPDF( 変換元 .odtファイルのパス ) doc → PDF の変換も可能! SaveAsPDF( 変換元 .docファイルのパス )
参考(外部リンク)
- 2011-03-20 OpenOffice形式に変換する - TorasenLab@はてな
- 2010-08-02 サーバ上でPDFやオフィス文書からテキストを抜き出す方法あれこれ - ククログ(2010-08-02)
- 2007-11-27 Open Tech Press | odtwriterを使ったテキストからODFへのファイル変換
- 2007-09-04 MOONGIFT: » OpenOfficeを経由したドキュメント変換「unoconv」:オープンソースを毎日紹介
- 2007-07-19 MOONGIFT: » OpenOfficeを使ってPDFを簡単に作成「どこでもPDF」:オープンソースを毎日紹介
- 2006-10-07 Placebo Effect :: ワードファイルをPDFに変換するツールだぜ!
- OOobbs2/4 - PDF エクスポート引数の与え方と PDF エクスポートマクロ - マクロを使った方法が解説されています。