OpenOfficeはUNO(Universal Network Objects)を使用してAPIを実装している。
OpenOffice.org for Developersの[SDK]-[SDK Download (1.0.2 SDK should be used for OOo 1.0.3.x)]からOpenOffice SDK をダウンロードするとドキュメントが充実しているので、ある程度は理解できるようになるのではないだろうか。
まずは、[SDK]-[Developer’s Guide (part of SDK)]からたどれる、2 First Steps を読んでみると言うのもよさそう。
LinuxでOpenOfficeでUNOを起動オプションで使えるようにするには、次のようにコマンドをうつ。ただし、ユーザーインタフェース用画面を表示して動かしたい場合は -headless はいらない。
“-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager” &
設定ファイルを書き変える方法は1.0.2と1.1.xでは設定方法が違うので注意が必要。ここでは1.1.xでの対応方法を書いておく。
$OfficePath/share/registry/data/org/openoffice/Setup.xcu をエディタで開いて編集する。<node oor:name=”Office”/>というエレメントのボディ部に、次のpropエレメントを追加する。
<value>socket,host=localhost,port=8100;urp;</value>
</prop>
この設定により、OpenOffice.orgを起動すると、8100ポートでソケット経由のUNOリモートプロトコル(urp)通信ができるようになる。
ネットワークインストールをしてあり、個人単位でこの設定をしたい場合には、$OfficePath/user/registry/data/org/openoffice/Setup.xcuにここで示したpropエレメントを追加する。
あとはsofficeをコマンド実行すればよい。動作確認はnetstatコマンドなどで8100ポートが開いているかみればいい。
$ netstat -a | grep 8100
tcp 0 0 localhost.localdom:8100 *:* LISTEN