Top > OOoBasic > Macros > ObjExport2

ObjExport2

この ObjExport2 マクロでは Calc のグラフ (チャート) やドローオブジェクトなどを PNG や EPS などの画像ファイルとして簡単にエクスポートできます。 "Writer", "Calc", "Draw", "Impress" で使用できます。OpenOffice.org Draw がエクスポートできるフォーマットすべて使用することができます。

実行には "Draw" が必要です。OpenOffice.org Draw や StarSuite, StarOffice 6.0 Draw がインストールされていなければ動作しません。(実行する "Writer", "Calc", "Draw", "Impress" アプリケーションと同じ時にインストールされたもので別のバージョンでの "Draw" ではたぶん動作しません。)

ダウンロード

fileObjExport2_01_install.sxw

インストール

上記のファイルをダウンロードして Writer で開きます。ドキュメントの中の install ボタンをクリックします。表示されるインストーラに従ってインストールしてください。 "mytools" ライブラリに "ObjExport2" モジュールがインストールされます。

実行

  1. オブジェクトを選択します。
  2. OpenOffice.org のメニューから ツール - マクロ - マクロ - soffice の mytools ライブラリ ObjExport2 モジュールの ObjExport2 を実行します。
  3. 保存ダイアログが表示されます。保存する画像のファイルフォーマットを選択します。
  4. 保存するファイル名を入力します。
  5. "OK" ボタンを押して保存します。このとき,上書きに注意!

このマクロでは ObjExport と違ってさまざまなものがエクスポートできます。また,エクスポートオプションも選択できます。

注意

  • バックグラウンドで "Draw" アプリケーションを開いて貼り付けたあとでエクスポートしています。そのため,実行するとメニューの "コピー" を実行するのでクリップボードの中身が置き換わります。重要なオブジェクトがクリップボードに入っている際には注意してください。
  • 一度も Draw を実行していない場合には最初のエクスポートに時間がかかります。

Version 641 以上で使用できます。646 以上では確認が取れていません。

免責事項

このファイルの使用またはこのファイルに含まれる OpenOffice.org Basic のマクロの使用で生じた全ての事態に製作者は責任をとりません。間違って重要なファイルに上書きしないようにしましょう。

コード

Sub ObjExport2 'September 4, 2003. ver. 0.1
on error goto ErrorHandler
Dim oDoc As Object, oDocFrame As Object
Dim oDocController As Object
Dim oDraw As Object, oDrawFrame As Object
Dim oDesktop As Object
Dim bIsDrawExist As Boolean
Dim nVersion As String
Dim nCopy As Integer
Dim nPaste As Integer
Dim nSelect As Integer
Dim nExport As Integer
Dim aArgs(0) As New com.sun.star.beans.PropertyValue

  nVersion = CInt( GetSolarVersion )
  oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
  oDoc = ThisComponent

  aArgs(0).Name = "Hidden"
  aArgs(0).Value = True'False
  oDraw = oDesktop.loadComponentFromURL( "private:factory/sdraw", "_blank", 0, aArgs() )
  bIsDrawExist = True
  bIsDrawExist = IsNull( oDraw )
  If NOT bIsDrawExist Then
    oDrawFrame = oDraw.getCurrentController().getFrame()
    oDocController = oDoc.getCurrentController()
    oDocFrame = oDocController.getFrame()

    Select Case nVersion
    Case > 642 '1.1
      nCopy = 5711 'SID_COPY
      nPaste = 5712 'SID_PASTE
      nSelect = 5723 'SID_SELECTALL
      nExport = 5829 'SID_EXPORTDOC
    Case 641 '1.0
      nCopy = 5711 'SID_COPY
      nPaste = 5712 'SID_PASTE
      nSelect = 5723 'SID_SELECTALL
      nExport = 27283 'SID_PUBLISH
    End Select

    SlotCommand( nCopy, oDocFrame )
    SlotCommand( nPaste, oDrawFrame )
    SlotCommand( nSelect, oDrawFrame )
    SlotCommand( nExport, oDrawFrame )

    oDraw.close( true )
  End If

  ErrorHandler:
    bIsDrawExist = True
    bIsDrawExist = IsNull( oDraw )
    If NOT bIsDrawExist Then
      oDraw.close( true )
    End If
  End
End Sub


Sub SlotCommand( nSlotID As Integer, oLocFrame As Object )
Dim aArg() As New com.sun.star.beans.PropertyValue
Dim oURL As New com.sun.star.util.URL
Dim oTrans As Object
Dim oDisp As Object
  oTrans = createUnoService( "com.sun.star.util.URLTransformer" )
  oURL.Complete = "slot:" & CStr( nSlotID )
  oTrans.parsestrict( oURL )
  oDisp = oLocFrame.queryDispatch( oURL, "_self", 0 )
  oDisp.dispatch( oURL, aArg() )
End Sub

コメント



Attach file: fileObjExport2_01_install.sxw 343 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