fc2ブログ

>> 古い記事: 雑メモ: 2007-06b
<< 新しい記事: 音素材投稿サイト Soundsnap の利用規約について

OpenOffice.org: バッチ処理で .odt-.doc 相互変換、PDF出力

2014-07-20 追記
最近のバージョンでは --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)

まずはメニューから [ ツール - マクロ - マクロの管理 - OpenOffice.org Basic ]
[ マクロの記録先 - マイマクロ - Standard ] を選択して右側の「管理」をクリック。

「Standard」が選択された状態で右側の「新規作成」をクリックし、モジュール名を入力。 ここでは MyConversions としておきます。

MyConversions モジュールを選択して右側の「編集」をクリック。

OOo Basic のエディタが起動します。

最初から書かれている Sub MainEnd 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ファイルのパス )

参考(外部リンク)

このブログ内の関連記事

テーマ:フリーソフト - ジャンル:コンピュータ

>> 古い記事: 雑メモ: 2007-06b
<< 新しい記事: 音素材投稿サイト Soundsnap の利用規約について
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|