Top > OOobbs2 > 142

OOobbs2/142 Edit

  • サマリ: 印刷プレビューの判定
  • 環境: Writer
  • 状態: 解決
  • 投稿者: ジョジョ?
  • 投稿日: 2008-09-18 (木) 10:39:01

質問 Edit

たとえばWriterで、現在のViewが通常表示か印刷プレビューかの判断をしたいのですができますか?方法を教えてください。

回答 Edit

  • プロパティひとつで印刷プレビューかどうかを判断できるものがなかったような気がします。代わりに、コントローラのインターフェースを調べて判定できそうです。
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
Sub test_a
  msgbox IsPrintPreview( ThisComponent )
End Sub
 
 
Function IsPrintPreview( oDoc ) As Boolean
  Dim bPreview As Boolean
  sViewInterface = ""
  oModMgr = CreateUnoService( _
      "com.sun.star.frame.ModuleManager")
  sModule = oModMgr.identify(oDoc)
  
  Select Case sModule
  Case "com.sun.star.text.TextDocument"
    sViewInterface = "com.sun.star.view.XViewSettingsSupplier"
  Case "com.sun.star.sheet.SpreadsheetDocument"
    sViewInterface = "com.sun.star.sheet.XSpreadsheetView"
  Case Else
    sViewInterface = ""
  End Select
  
  If sViewInterface <> "" Then
    oController = oDoc.getCurrentController()
    bPreview = NOT HasUnoInterfaces(oController, sViewInterface)
  End If
  
  IsPrintPreview = bPreview
End Function

calc ではそれらしいインターフェースがありますが、writer ではいまいち。ほんとはサービスを調べたいのですが、印刷プレビュー時のコントローラが com.sun.star.lang.XServiceInfo インターフェースをサポートしていないので使えませんでした。

  • はにゃ? 2008-09-18 (木) 14:23:49
  • 判定することができました。ありがとうございました。 -- ジョジョ 2008-09-22 (月) 14:10:45

感想,コメント,メモ Edit



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