2011年5月24日火曜日

Windows7 x64 環境に於けるVB.NET WebBrowser PDFインライン表示

.NET FRAMEWORK 3.5で開発したアプリがWindows7 x64環境で正しく動作しなかった。

実装した機能
WebBrowserコントロールにpdfファイルをインライン表示する機能

現象
x64環境だと、インライン表示されず、別窓に開いてしまう。つまり、pdfファイルをダブルクリックした時と同じ画面。

解決方法
VSのコンパイラの詳細設定で、ターゲットCPUをAnyCPUからx86に変更(因みに、x64では駄目だった。adobe readerは32ビットだからね。)。

これだけで解決してしまった。

でも、この解決方法を見つけるまでは、実にまる1日かかった。
ネットで検索しても解決方法は見つからず、仕方がないのでadobe のSDKを使ってOLEでPDFを表示することにしたのだけど、WebBrowserよりも動作が遅い。何故か分からないけどpdfのページ数が多いと極端に遅い。しかし、仕方がないのでこれで我慢しようかと思っていた時、ふと気付いた。SDKのサンプルをx64環境で動作させる時、AnyCPUだと動作しなかったのでx86に変更してコンパイルして動作させた。ひょっとして、WebBrowserも同じかと思って試してみたところ、案の定、動作した。

あ~、今日はこれで仕事は終わりにしよう。気分上々。

3 件のコメント:

  1. 同じ現象で悩みました。助かりました。

    返信削除
  2. 私も同じ現象で悩んでいました。大変助かりました。

    返信削除
  3. 私は同じ現象ではなく全く表示されなくて悩んでました。x86に変更しただけではだめで、AdobeReaderの設定も変更する必要がありました。助かりました。

    返信削除