技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。ライセンスの下に提供されています。17日目というか、Facebookの書き込みを見て、あれ、Ubuntuの場合はシステムPythonでPyUno(PythonからLibreOfficeの外部インタフェースUNOを使えるようにしたバインディング)使えたんじゃなかったっけと思って試してみました、というだけの話。私Pythonとか5行ぐらいしか書いたことないので(ややうそ)、勘違いとかあったら教えてください。ググっていたら見つかった、PyUNOをより簡単に使えるようにしたラッパーライブラリであるunotoolsを試してみます。必要そうなパッケージをaptでガツガツとインストール*1。入ってるものもあるかもだけど気にしない。python3-unoこれでpython3からPyUNOが呼べることをまず確認します。uno>>>問題なさげですね。次にunotoolsですが、こいつはpipなライブラリなのでまずはpipを入れねばならんのです。searchするとpython3-pipというのがいるので、こいつだ!と思ったのですが、どうも罠っぽい。qiita.comあるべき姿がわからんのですが、調べるのもめんどくさいのでsetuptoolsを経由して入れてしまいます。virtualenvとか使う方がいいんだろうなーとか思いつつ。unotoolsこれで入ったっぽい。unotools公式サイトの例題をやってみます。最初にLibreOfficeをポート指定して起動。--accept='socket,host=localhost,port=8100;urp;StarOffice.Service'それからpython3を起動し、パッケージをインポートしてコネクションを張り、Writerのインスタンスを起こす。Writer(context)で、起こしたWriterインスタンスに対して、「文字列を文章末に追加」する。writer.set_string_to_end('World\n')はい、こんな感じでWriterにPythonから出力することができました。例のための例で恐縮ですが、unotools良さそうですね。Conferenceでありました。興味がある方は是非発表資料(PDF)をご覧あれ。明日は誰か書いてくれるかな?それでは!*1:最近、可能な限りaptコマンドで生きようと思っております。