Top > OOobbs2 > 141

OOobbs2/141 Edit

  • サマリ: Writer を拡張コンソールにする python マクロを作れるでしょうか?
  • 環境: Writer
  • 状態: 解決
  • 投稿者: 小林@那須?
  • 投稿日: 2008-09-17 (Wed) 16:20:16

質問 Edit

始めまして、小林@那須と申します。ここの掲示板へ初めて投稿します。

Writer で、カーソル行にある文字列行を取り出してコマンドとみなし、それを cmd.exe で起動し、そのプロセスと pipe でつないで、exe プログラムのコンソール表示 を Writer 画面側に行わせる Writer マクロを作れたらいいなと思っています。これがで きたら、 Writer を拡張コンソールとして使えます。より具体的には下にあるような WZ エディタのコンソール・マクロを OOo の Write で実現したいと思っています。

原理的には可能なはずだと思います。でも どの程度の手間がかかるものか検討が付きません。

   ・ Writer を拡張コンソールにするマクロを実際に作れる段階にあるものでしょうか?
   ・その段階にあるとしたら、どこらの資料・インターフェースを調べるべきでしょうか?

などについて、アドバイスをいただけないでしょうか。

私自身は C/C++ および python については、だいたいのことは知っているつもりです。 何万行もプログラムコードを書いてきました。でも OOo は殆ど知りません。

なお Basic は、できたら避けたいと思っています。VBA で 2000 行規模のプログラムを 一回作成した程度の経験しかないためです。

(もし Basic マクロの掲示板であって python の話題が相応しくないときは、この投稿 を消してやってください)

回答 Edit

  • まぁ、この掲示板を作成したのが4年くらい前なので今ではもう Basic でなくても OOo の拡張とかならいいんじゃないかと思います。(私も Python マクロとか投稿してたりしますし。)

ところで、コンソール化はできると思います。

  1. Enter を押すと現在の行を取得 (カーソル位置)
  2. 実行、出力を取得
  3. 書き出す

1 は Writer の API を使えば問題なく行えます。ただの改行と改段落を区別する必要がありますが。(Writer のひとつの段落に入れられる文字数は 64k までなので改段落を入れる必要があります)

2 は実行して出力を取得する方法を利用したい言語で実装できれば問題ないはずです。(C++ はよく分かりませんが…。)

3 も 1 と同じでカーソルの次の行くらいから挿入という感じでしょうか。

BackSpace キー操作などでプロンプトを消さないように、出力の部分を編集できないようにとかのために KeyHandler が利用できそうです。

そういえば、Py-UNO でのマクロをコンソール (tcp などからの接続でない) で利用できるようにと思い・・・。Python の code モジュールを利用して OOo のウィンドウでコンソール風のものをでっち上げましたが、エディットコントロールでは機能が不十分でした。後で Writer を使えばよかったと思いましたが、使わなさそうなので実行できるところまでで放置されてます。

Basic ではコマンドを実行して標準出力結果を直接取得する方法がありません。一時ファイルを利用する必要があります。なので、不適です。

  • はにゃ? 2008-09-17 (水) 16:44:54
  • さて、参照するべきものは・・・。
  • Python-UNO 関連
  • OOo SDK
    • C++, Java などで OOo API を利用するサンプルなどが含まれています
  • C++, Java UNO Reference
    • SDK 付属

ML 類

フォーラムなど

Basic は不適ですが、Writer の挙動を調べるためやテストに少し利用するといいと思います。

一応、Basic のドキュメントも挙げておきます。

あるとよいもの。OOo API のオブジェクトインスペクタ。それぞれ、特徴がありますが合うものを。

  • はにゃ? 2008-09-17 (水) 17:05:05

感想,コメント,メモ Edit

  • アドバイスありがとうございました。 -- 小林@那須 2008-09-17 (Wed) 23:08:36
  • 管理者様、「はにゃ」さんに確りと背中を押してもらえ、また writer の拡張コンソール化も無理筋ではなさそうなので、本腰を入れて挑戦してみます。 -- 小林@那須 2008-09-17 (Wed) 23:09:11
  • 途中で何かに躓いたときは、また助けてやってください。ありがとうございました。 -- 小林@那須 2008-09-17 (Wed) 23:09:38


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes