WebViewerコントロールを使用しPDF形式のレポートをブラウザ全体に表示しています。クライアントのブラウザをIE6からIE7に変更したところ全画面表示されなくなりました。
対象製品
ActiveReports for .NET 6.0J Professional
詳細
製品ヘルプ「よくある質問:WebViewerコントロールをブラウザのサイズに合わせる」を参考に、コーディングを行った場合にこの現象が発生する場合があります。
本現象は、IE6とIE7互換性に依存した動作と考えられます。ViewerTypeプロパティをAcrobatReaderに設定したWebViewerコントロールが配置されている.aspxページを実行すると、クライアントに出力されるページには、<div>や<iframe>タグを使用して、コントロールやPDFデータ(WebViewerが出力するArCacheItem)が埋め込まれます。これらのタグ内に、クライアント環境のAdobe Readerがインライン表示され、ブラウザ上にPDFが表示されるという動作になります。
このとき、コントロールの領域を示す<div>や<iframe>タグの、Style属性に記載されたCSSにより、ブラウザのサイズに合わせてWebViewerのサイズが調整されます。
IE7の仕様に関しては弊社にも詳細な情報がございませんが、CSSを使用したWebページをIE7上で表示したとき、IE6の場合とで結果が異なってしまうケースがあるようです。
Internet Explorer 7.0 に関するカスケード スタイル シートの互換性
http://www.microsoft.com/japan/msdn/ie/expie/ie7_css_compat_reviced.aspx
本現象の回避方法としては、以下のような方法が考えられます。
本現象は、IE6とIE7互換性に依存した動作と考えられます。ViewerTypeプロパティをAcrobatReaderに設定したWebViewerコントロールが配置されている.aspxページを実行すると、クライアントに出力されるページには、<div>や<iframe>タグを使用して、コントロールやPDFデータ(WebViewerが出力するArCacheItem)が埋め込まれます。これらのタグ内に、クライアント環境のAdobe Readerがインライン表示され、ブラウザ上にPDFが表示されるという動作になります。
このとき、コントロールの領域を示す<div>や<iframe>タグの、Style属性に記載されたCSSにより、ブラウザのサイズに合わせてWebViewerのサイズが調整されます。
IE7の仕様に関しては弊社にも詳細な情報がございませんが、CSSを使用したWebページをIE7上で表示したとき、IE6の場合とで結果が異なってしまうケースがあるようです。
Internet Explorer 7.0 に関するカスケード スタイル シートの互換性
http://www.microsoft.com/japan/msdn/ie/expie/ie7_css_compat_reviced.aspx
本現象の回避方法としては、以下のような方法が考えられます。
- WebViewerコントロールを使用する場合の方法
JavaScriptでブラウザ内の表示エリアの高さを取得し、iFrameに設定することでAdobe Readerをブラウザのサイズに合わせることができます。以下のコードをWebViewerが配置されている.aspxファイルの<head>~</head>の中に挿入してください。
◆サンプルコード(JavaScript)
<script type="text/javascript" language="javascript">
function resizeWebViewer() {
var frameHeight = 0;
// ウィンドウの高さを取得します。
if (self.innerWidth) {
frameHeight = self.innerHeight;
} else if (document.documentElement && document.documentElement.clientHeight) {
frameHeight = document.documentElement.clientHeight;
} else if (document.body) {
frameHeight = document.body.clientHeight;
}
// iframeタグを持つ要素を抽出します。
var allIFrames = document.getElementsByTagName("iframe");
// PDFが表示されるiframeの高さを設定します。
allIFrames.item(0).style.height = frameHeight + "px";
}
// ブラウザのリサイズ毎にresizeWebViewerを呼び出します。
window.onresize = resizeWebViewer;
</script>
- WebViewerコントロールを使用しない方法
本現象は、WebViewerコントロール(ViewerType=AcrobatReader)を使用して、コントロールのサイズを調整した場合に発生します。製品ヘルプの以下の内容ではWebViewerを使用せずにPDF形式のレポートを出力しています。
ActiveReports for .NETユーザーガイド
- サンプルと基本操作
- 基本操作
- Standardの基本操作
- カスタムエクスポートの操作手順
- PDFにカスタムエクスポート
キーワード
問題 Web
この文書は、以前は次のFAQ IDで公開されていました : 11949