市來健吾の日記

プログラマ、(元)物理屋(ナノテク、流体)

OODoc で遊ぶ。


  • 前回は PPT をターゲットに、 java で POI を遊んだ。

  • 今週末は気分を変えて、 perlOODoc を遊んでみる。なので、今回のターゲットは OOoImpress.

  • 何か perldoc をざっと読んでもよく分からないし、 例題も極めて限られているので、日曜プログラマーには厳しいなと挫折しかかる。 そういえば「ODFXML を zip で固めたものに過ぎない」というようなことを読んだので (cf.「Manipulating OOo Documents with Ruby (James Britt)」@linuxjournal)、 手元にある odp ファイルを色々と unzip してみて、その構造を眺めてみる。 こうなると、何か直接 XML を書き下す方が早いなとか思いながら、 mgp2odp をでっちあげた。 mgp2kpr.pyOOo版、Perl版って感じかな。 (と言っても、別に Perlpython よりも大好きという訳ではない。 むしろ vtk がらみで結構付き合いが長いので python の方に馴染みがある。)

    • 付記その1(2/4/2008): 「初心者向けの言語」@matz を読んで、何だかまさに 「抽象度が低く」「力業でなんとかしてしまう」ような 「初心者、あるいは経験の少ないプログラマ」が書いた 「理解が難しいようなプログラム」だなと思った。 実際、 「機能は手続きベースでフラット」に組んでて、 「データ構造」も気にしてないし、 「モジュール化」もしてない(最低限、関数に切り分けただけ)。 もっと修行しないといかんな。

    • 付記その2(2/4/2008): ってことで、誰か出来る人がサクッと作ってくれることを期待しつつ、 公開してみる

  • この mgp2odp は今のところ、 magicpoint の TAB による構造を単純に outline に貼り付けただけ。 TAB なしの行も outline の一番上位の item にしていて、 page 以外のコマンドは何も考えていない(フォント関係も、行の継続も)。 一応、何もしないでも日本語は通る模様(mgpは iso-2022-jp で決め打ち)。

    • 付記その3(2/4/2008): デモを作った。

  • mgp とは独立に、 OODoc で画像を入れることも一応 follow したので、 次はそれだな。(というか、箇条書きのテキストと、画像化された数式と、 画像があれば、プレゼンとして実用上何の問題ないので、ここまで出来たら終わりだな。)

  • さて、この mgp から odp への変換について、 Impress 側の基本的な構造(多分 PPT も同じ)についてちょっと悩んでいる。 みんなはスライドを、テンプレートにあるように outline 一発(スピリットとして) で作ってるのかな? 具体的に言うと、 magicpoint の TAB なし行を、今のmgp2odpの手抜き実装のように outline の top item として見るのか、それとも subtitle と見るのか、ということ。 私がこれまで magicpoint を使ってきた時の気分は後者なんだけど、 そうすると Impress(やPPT)の構成が小さな outline だらけになる。 それが Impress(やPPT)で普通なのか、そうじゃないのか、という疑問。 (それから、 Impress で title のような、 outline じゃない plain な text-box を body 部に新たに挿入したいときは、 どう操作するのだろう? insert にそれらしいエントリーがないし。 あと、既にある要素の cut-and-paste はどうすれば出来るのかな? ……思いっきり初心者だ。)

  • 文字の装飾は、 span で style を指定するみたい(xml を覗いてみた結果)。 OODoc でこれを作る正しい作法は、どうするんだろう? (自分で T1 とか T2 とか style を定義するのが正しいのかな?)

  • あと、 magicpoint では数式を(自分では)画像にしているのだけど、 odp で text の一部としてそういう画像を入れられるものなのだろうか? それとも各画像要素に対して一々 draw:frame を準備するのかな? そうするとスライド中の座標の見積りとかしなければならなくなって面倒だなと思ったり。 安直な落としどころは、必要な画像は適当に並べておいて、 位置決めは全部 Impress を起動して GUI 的に(ちまちまと)行ってもらう、かな…… (手ぇ抜きすぎだな。)

    • 2/9/2008: しかるべく実装(有言実行!)。

  • それから、 OODoc で presentation を作る方法を検索してたら、 以下のサイトを見つけた:
    テキストからOpenOffice.org Impressファイルを作るツール」@emasaka

    • そちらの方が筋が良さそうな coding だな (つまり、読んでもよく分からなかった)。

  • 2/15/2008: mgp2odp version 1.4 - そろそろ終了かな。

今日のモントン


  • 最近、臭い女の子 と言われ続けていたモンちゃん、今日やっとお風呂に入った。 えっと、前回入れたのはいつだったかな? 1/2/2008の後に 一回入れたような気がするが、 注射の前だったかな?

  • 今日の写真、ボサボサ顔(プラス舌だし)の図。 一応言っておくが、写真自体ブレてるし、本物はもっとかわいい(親バカ)。

    (2008/1/6)