** [[OOobbs2/142]] [#p7ca73d1] -''サマリ'': 印刷プレビューの判定 -''環境'': Writer -''状態'': 解決 -''投稿者'': [[ジョジョ]] -''投稿日'': 2008-09-18 (木) 10:39:01 *** 質問 [#a6974f42] たとえばWriterで、現在のViewが通常表示か印刷プレビューかの判断をしたいのですができますか?方法を教えてください。 *** 回答 [#u909b1eb] - プロパティひとつで印刷プレビューかどうかを判断できるものがなかったような気がします。代わりに、コントローラのインターフェースを調べて判定できそうです。 #code(ob){{ 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 インターフェースをサポートしていないので使えませんでした。 -- はにゃ? &new{2008-09-18 (木) 14:23:49}; - 判定することができました。ありがとうございました。 -- ジョジョ &new{2008-09-22 (月) 14:10:45}; #comment *** 感想,コメント,メモ [#p8cb5e58] #comment |