Silverlightアプリ内でPDFを表示する。

Silverlightアプリ内でPDFを表示できるかを調べたところ、以下の条件が必要なようです。

  • 表示するマシンにAdobe Readerがインストールされている。
  • WebBrowserコントロールを使用する。
    • この時点で自動的にSilverlightのOut Of Browserが必須になります。

下記のサイトを参考にしました。

アジェンダ

  • 検証コード
  • ブラウザ内実行時にPDFを表示する。
  • まとめ

検証コード

MainPage.xamlにWebBrowserを定義します。

<Grid x:Name="LayoutRoot" Background="White">
    <WebBrowser 
        Source="http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/iac_developer_guide.pdf"/>
</Grid>

これを通常のSilverlightアプリとして実行すると下記のようになります。

Out Of Browserに設定

VisualStudioのプロジェクトのプロパティでOut Of Browserモードを指定できます。

設定後にVSを実行するとOut Of Browserモードで立ち上がります。

正常に表示できましたね。

ブラウザ内実行時にPDFを表示する。

ブラウザ上で実行している時は諦めて別ウィンドウにPDFを表示します。

System.Windows.Browser.HtmlPage.PopupWindow(
    new Uri("http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/iac_developer_guide.pdf", UriKind.Absolute),
    "_blank",
    null);

まとめ

  • Out Of Browserで実行すればSilverlightアプリ内にPDFを表示できる。
  • ブラウザ内実行時は諦めて別ウィンドウで表示する。