[ PC系セットアップ覚書 Top]

PC系セットアップ覚書

2011年まで「俺的な非 UN*X 環境をめざして」という題でしたが、 「UNIX系」と「非UNIX系」の区別がだんだん難しくなってきましたので、 あれこれ区別しないことにしました(^_^;


[前] [ImageMagick] linear-stretch オプションを使ってみる 2013/06a

[memo] PowerPoint(ppt)ファイル(など)の自動変換 2013/04c

OpenOffice.org か LibreOffice と、 JODConverter というパッケージ (JRE必要)を組み合わせると いいらしいです。 ‥ということで、何か使えそうだな とか思って、いろいろ調べてみたところ。 どこに書いてあったか見失ってしまいましたが、この作者の人が「単純にデータを変換するだけなら、 JODConvert を使うより PyODConverter を使うほうがラクだよ」と書いてるのを見つけました。 たしかに PyODConverterのサイト [URL]には

The script was written as a simpler alternative to JODConverter for command line usage.
とあります。ラクならそっちでいいじゃん、ということで JODConverter じゃなくて、 こちら PyODConverter を使うことにします。

[Table of Contents]

ソフトのインストール

JODConverter は JRE を使うのに対し、PyODConverter は Python という スクリプト処理ソフトを使います。できれば Portable なコンバータ環境を作れないかな、と 思っていますので、Python もポータブルであればいいんだけど‥とか思ってましたが。 何とこれ、LibreOffice のパッケージの中にもうすでに入っていて、それを使えばいい みたいですね。何てこった! ちなみに LibreOffice Portable のパッケージの中の、 \App\libreoffice\program\python.exe がそれです。 つまり、LibreOffice Portable の導入さえ終わっていれば、 PyODConverter という小さなパッケージさえ用意すれば、それでOKということですね。

[Table of Contents]

データ変換

 データ変換の手順は、JODConverter と同じです。まずサーバ的な感じで LibreOffice を 起動してやります。具体的には、こんな感じ:

F:\Apps\Packages\LibreOfficePortable\libreofficeportable "-accept=socket,port=2002;urp;"
([注]: 上記は一行で入力します)
これは LibreOffice Portable のパッケージが F:\Apps\Packages\LibreOfficePortable にある場合です。 Portableだと無理かなー と危惧しましたけど、実際にやってみたら無問題でした。 こんな感じで起動した LibreOffice Portable ですが、これは変換作業を行っているあいだ、 起動したままにしておいてください。(‥しかし、やっぱ起動にかなり時間かかりますね‥。 USB3だと やっぱ違うのかな。) 見た感じ、普通に起動したのと全然変わらないように見えますが、 ポート番号2002を使ったサーバプログラムとして動作してますので。 ちなみにこの2002という数字、とくに2002でなくても構わないはずです。 DocumentConverter.pyのスクリプトの中に DEFAULT_OPENOFFICE_PORT=2002 のように ポート番号を設定してる箇所がありますので、それと ここで指定するポート番号とが 一致していればいいんじゃないかと思います。 (なお。LibreOffice など 比較的新しいパッケージであれば、ppt のみならず PowerPoint2010 などで用いられる pptx ファイルも、とくに問題なく変換できました。為念)

 そしていよいよデータ変換です。LibreOffice Portable パッケージが F:\Apps\Packages\LibreOfficePortable にある場合、Python は F:\Apps\Packages\LibreOfficePortable\App\libreoffice\program\python となりますし、また今回ダウンロードした PyODConverer が F:\pyodconverter-master\DocumentConverter.py にあるとき、 こんな感じのコマンドを入力します。

F:\Apps\Packages\LibreOfficePortable\App\libreoffice\program\python F:\pyodconverter-master\DocumentConverter.py test.ppt index.html
([注]: 上記は一行で入力します)
こうすると test.ppt の中身を index.html (など、意外とたくさんの HTML ファイルと JPEG ファイルなど。各スライドが一つのJPGファイルになる感じです)に変換してくれます。 ‥‥ということで。うまいこと、いったよ!!(^o^)

[2015追記] LibreOffice に含まれる Python ですけど。LibreOffice のバージョン4から、 Python のバージョンも3になったようです。その結果、PyODConverter も なんか動かなくなってしまいました。がーん。 (しかも。いろいろ試してみたんですけど、どうしても動いてくれない‥。 pyuno.pyd を import してくれればひょっとして‥という感じではあるんですが、 そこをクリアする方法がわからない‥)

 ‥しかし。Apache OpenOffice.org のほうはバージョン4.1.1 でもまだ Python のバージョンは2のままみたいですので、Apache OpenOffice.org の ほうであれば まだちゃんと動作するみたいです。

[Table of Contents]

PPT以外も変換可

LibreOffice とか OpenOffice.org を使うということはつまり、この方法、単に PowerPoint のデータ(ppt)だけじゃなくて Excel のデータ(xls)を csv 形式に変換したりとか、 PDF形式にしたりとか、いろいろできるんじゃね? と思ってしまうのですが。 ‥結論からいえば、できます。上の例では test.ppt というファイルを index.html などに 変換していましたが、これを test.xls test.csv とか書いてやれば test.xls から test.csv を 生成してくれます。計算式などは計算した結果が入るようです。おお! ‥と思いましたけど、 ちょっと問題がないこともないか。xls ファイルに複数のシートが含まれている場合、 その最初のシートしか変換されてくれません。これはイマイチ。このへんは、 [1209a] XLSファイルからCSVファイルへ [URL] で用いた、Excel を裏で使うソフトのほうに 一日の長がある感じですかね。しかしこちらの方法は、Excel のインストールの有無に関係なく XLSファイルの変換ができる点で 汎用性が高くていいんですよね。何とならないかな。 (書きかけ)



[次] [memo] Portable で使えるドローソフト 2013/04b