Top > OOobbs > 3

OOobbs/3

  • サマリ: Writer で通常使用する画像オブジェクト
  • 環境: Basic
  • 状態: 投稿
  • 投稿者: wata?
  • 投稿日: 2003-12-03 (水) 16:43:29

質問

Writer で通常使用する画像オブジェクト (getGraphicObjects でカウントされるオブジェクト)についての報告です。

SDKでは、"TextGraphicObject" と表記されていますが、 実際の createInstance のパラメーターには "com.sun.star.text.GraphicObject" と指定するようです。

これで作成したオブジェクトは、挿入メニューから作成した図形や、ペーストした図形と同じオブジェクトのコレクションとして扱われるため、getGraphicObjects メソッドにも計上されるようになります。

sub insertGraphic
    Dim document As Object
    Dim oGraphics As Object
    Dim oGraphic As Object
    Dim oText As Object
    Dim oCursor As Object
    Dim Size As New com.sun.star.awt.Size

    ' 処理中の文書
    document = ThisComponent

    ' 図のコレクション
    oGraphics = document.getGraphicObjects

    ' 現在の図の数を表示
    msgbox oGraphics.getCount

    ' TextGraphicObject を作成
    oGraphic = document.createInstance("com.sun.star.text.GraphicObject")

    ' 画像の表示サイズは以下の座標で指定(GraphicObjectShapeと違い、Position の指定はなし)
    Size.Width = 10000
    Size.Height = 10000
    oGraphic.Size = Size

    ' 画像読込み
    oGraphic.GraphicURL = "file:///c:/test.jpg"

    ' 現在のカーソル位置に挿入
    oText = document.Text
    oCursor = oText.createTextCursor
    oText.insertTextContent(oCursor, oGraphic, False)

    ' 現在の図の数を表示
    msgbox oGraphics.getCount
end sub

丸一日ハマリました_| ̄|○

回答

回答というわけではないのですが,createInstance メソッドで,ドキュメントなどに作成することのできるオブジェクト名 (サービス名) はドキュメントオブジェクトから getAvailableServiceNames メソッドを使用することで取得することができます。

これを利用したのが,mytools の availableservicenames2sheet です。

たとえば, Writer ドキュメントオブジェクトでは,次のファイルにあるようなサービスを利用することができます。(ドキュメントの中へ埋め込める)

  • 上のほうに状態の項目がありますが,ここを特定の値に変更することで OOobbs の表のステータスも変わります。とりあえず,投稿を作成したので変更しておきます。 -- はにゃ?? 2003-12-03 (水) 23:32:23


Attach file: filewriter_ThisComponent.sxc 1121 download [Information]

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