Flashビューワによる直接印刷
これまで説明したようにWebViewerコントロールを使用することで、ブラウザ上にさまざまな形式でレポートを表示することが容易に実現できます。
しかしながら、実際のWebアプリケーションでは、「プレビューを表示せず、クライアント側のプリンタに印刷させたい」場合もあります。こうした要件は、FlashViewerを使用することで実現可能です。
具体的には、WebViewerコントロールのFlashViewerOptions.PrintOptions.StartPrintプロパティをTrueに設定するだけです。このように設定したWebViewerコントロール(FlashViewer形式)にレポートが読み込まれると、自動的に印刷設定ダイアログが表示されるようになります。
以下のように、WebViewerコントロールのプロパティを設定します。
- ViewerTypeプロパティをFlashViewerに設定する。
- FlashViewerOptionsプロパティを展開する。
- PrintOptionsを展開する。
- StartPrintプロパティをTrueに設定する。
- WebViewerコントロールのサイズを幅0×高さ0とし、実質的に見えなくなるようにする(なお、WebViewerコントロールのVisibleプロパティをFalseに設定した場合、WebViewerコントロール自体が動作しないため、印刷も行われません)。
上記のように設定したWebViewerコントロールにレポートを設定すると、WebViewerコントロールへのレポートの読み込みが完了するのと同時に印刷設定ダイアログが表示され、印刷できるようになります。
WebViewerコントロールを使用した
Webアプリケーションの運用環境への配置
Webアプリケーションを運用環境に配置する場合、一般的に仮想ディレクトリの作成などの作業が必要ですが、WebViewerコントロールを使用している場合、IISに対して固有の設定を行う必要があります。
具体的な設定内容・手順については、製品ヘルプの[ActiveReportsを使用するための準備]-[Webアプリケーションの実行前に必要な設定]を参照してください。
また、もしWebViewerコントロールにレポートが表示されないといった問題が生じる場合は、こちらのナレッジ文書も確認してください。
これまで紹介したように、FlashViewerを使用することで、プレビューすることなく印刷を実行できます。しかしながら、以下のような動作はWebViewerコントロールでは実現できません。
- 印刷設定ダイアログを表示させることなく、クライアント側のプリンタに印刷する。
- クライアント側のプリンタに印刷する時の印刷先プリンタや印刷部数、用紙サイズなどをあらかじめ設定する。
FlashViewerはAdobe Flash Player上で動作するビューワですが、こうした動作を実現できないのは、Flash Playerのセキュリティ上の制約によって、このような処理をコードから制御することが禁止されているためです。
もし、こうした動作が可能な場合、ページを開くと同時に大量のページをプリンタに強制的に印刷するような悪意を持ったページを構成することが可能となってしまいます。
印刷設定ダイアログを表示せずに印刷したい場合や、印刷部数をあらかじめ設定する必要がある場合には、Webアプリケーションではなく、印刷用のWindowsフォームアプリケーションを別途作成する方法をご検討ください。
このときはClickOnce機能を使用することで、Windowsフォームアプリケーションの配布とWebアプリケーションからの呼び出しを実現できます。こちらのナレッジ文書でサンプルが公開されていますので、参照してください。