Top > OOobbs3 > 96

** [[OOobbs3/96]] [#a0b61e73]
-''サマリ'': 印刷プレビュー判定 OOobbs2/142関連
-''環境'': Basic
-''状態'': 未解決
-''状態'': 解決
-''投稿者'': [[セルダン]]
-''投稿日'': 2012-06-07 (木) 10:10:11

*** 質問 [#vf0f5208]
今日も感謝でついてる♪

OOobbs2/142で印刷プレビューの判定について書かれていますが、
同様の方法をLibreOffice3.5で実行するとエラーになってしまいます。

#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
}}

対処方法をご教授お願いいたします
*** 回答 [#f2facd69]
- identify メソッドは css.lang.XServiceInfo インターフェースを内部で利用していたと思います。ドキュメントオブジェクトの supportsService メソッドでコンポーネントを調べるといいでしょう。 -- はにゃ? &new{2012-06-07 (Thu) 22:05:56};
- Xubuntu 12.04 32bit 上の LO 3.5.3.2 では Writer と Calc ドキュメントに関しては問題無いようでした。LO はメンテナンスリリースでも色々といじってくるので、最後のバージョンまで書いてもらえると助かります。 -- はにゃ? &new{2012-06-07 (Thu) 22:09:57};
- 回答感謝します。 どうも、他の修正が影響したようです。 お騒がせしました。 -- セルダン &new{2012-06-08 (金) 11:15:51};

#comment


*** 感想,コメント,メモ [#hb3c6e09]
- すみません。質問を編集していたら質問自体が増えてしまいました。削除方法が分かりません。m(__)m -- セルダン &new{2012-06-07 (木) 10:26:43};

#comment

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