どぅーちゅいむーにー

これ、Twitterでよくね?という日々の記録かも

Ubuntu 10.10 に OpenSlide 環境構築(unoconv 動作確認編)

というわけで、unoconv の動作確認を行う過程で行ったこと。


ざっと調べていた範囲では、unoconv を使う場合、--listener でリスナ(OpenOffice と連携するためのブリッジみたいなイメージ?)を起動して、unoconv コマンドを実行する形になるようです。


X 関連の設定の記憶ははるか彼方に行ってしまったので、
Linuxサーバ上でWORDファイルのコンバート
と、ここからリンクされている
openoffice をサーバーにする
を参考にさせていただきました。

  • Xvfb の起動

(試したのは root で)Windows 上の SSH クライアントからリモートアクセスしたターミナルではなく、本体のコンソール(0:0)から以下を実行


# export DISPLAY=:1.0
# Xvfb :1 &
# xhost localhost
こちらはopenoffice をサーバーにするより。

  • unoconv listener の起動

こちらは、一般ユーザ(とはいっても ubuntu インストール時に登録したアカウント)で unoconv を起動。


% unoconv --listener &
ハイフンは2つです。
すると、unoconv ではなく、soffice.bin というプロセスが起動します。

% ps aux | grep soffice
k155e1 24820 1.0 14.9 208464 75744 pts/0 Sl 17:12 0:26 soffice.bin -nologo -nodefault -accept=socket,host=localhost,port=2002;urp;StarOffice.ComponentContext
ここで1点注意ですが、中身に日本語を含むファイルを変換すると思いますので、unoconv --listener を実行するアカウントの LANG には気をつける必要がありそうです(通常、一般アカウントは ja_JP.UTF-8 になっているかと思います)。
今回、まずはと思い、root で unoconv --listener を実行したのですが、一部漢字が化けました。root でも、LANG=ja_JP.UTF-8; unoconv --listener と実行することで文字化けもなくなりました。

% echo $LANG
ja_JP.UTF-8
% unoconv --listener &
という感じで。

  • unoconv 実行!

適当なファイル(ppt)を scp などでサーバ上にコピーし、-f pdf を指定して pdf に変換。


% ls -l
合計 172
-rw-r--r-- 1 k155e1 users 174080 2011-02-07 14:35 input.ppt
issei@issei2:~/a$ unoconv -f pdf input.ppt
Leaking python objects bridged to UNO for reason pyuno runtime is not initialized,
(the pyuno.bootstrap needs to be called before using any uno classes)
% ls -l
合計 324
-rw-r--r-- 1 k155e1 users 153960 2011-02-07 17:56 input.pdf
-rw-r--r-- 1 k155e1 users 174080 2011-02-07 14:35 input.ppt
怪しいエラーが発生しますが、pdf ファイルが作成されていることがわかります。




これで一応 unoconv が使えるようになった、ということでブラウザより OpenSlide にアクセスし、アップロードしたところ、unoconv のところでエラー?は発生していますが、Power Point(ppt)ファイルが Flash(swf)に変換され、参照できるようになりました。
途中で1ページ挟みますが、以下のように Power Point のファイルが参照できました!



ここまで、長かったっす・・・
細かい話については、忘れないうちにまとめたいと思います。