Webアプリケーションでプレビュー表示せずにレポートを印刷する方法は?【※サンプル有り】
対象製品
ActiveReports for .NET 7.0J
詳細
Webアプリケーションでプレビュー表示せずにレポートを印刷する場合、印刷したいプリンタの場所によって実装方法が異なります。
(この方法は、規模の小さなイントラネットなど、使用環境が限られます。)
クライアントからの要求で、サーバ側から印刷を行う場合に必要となる設定につきましては、マイクロソフト社のWebサイトで公開されている下記の情報をご参照ください。
[サーバーからの Web ベースのレポートの印刷]
[IIS]ASP によるサーバ側での印刷方法について
また、製品ヘルプの以下のトピックもあわせてご覧ください。
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- よくある質問
- セクションレポート
- Web
- 「サーバー側で印刷を行う」
クライアント側のプリンタに印刷する場合
ActiveReports for .NET 7.0J を使用した Webアプリケーションで、クライアント側のプリンタに直接印刷する場合、いくつかの方法が考えられます。- Flashビューワを使用する方法
Flashビューワを使用する場合、WebViewerコントロールをWebForm上に配置し、そのViewerTypeプロパティを"FlashViewer"に設定してください。なお、Flashビューワを使用した直接印刷には、StartPrintプロパティを使用する方法と、クライアントスクリプトを使用する方法があります。
※ Flashビューワを使用する場合、印刷設定ダイアログを表示させずに直接プリンタに印刷することはできません。 ※ WebViewerコントロールはProfessional限定の機能です。Standardではご利用いただけません。
- StartPrintプロパティを使用する方法
WebForm上に小さなサイズ(例:1×1)に設定したWebViewerコントロールを配置し、FlashビューワのStartPrintプロパティを"True"に設定します。このように設定することで、サイズが1×1のFlashビューワがブラウザにロードされ、ロードが完了した時点で、印刷設定ダイアログが表示されますので、結果的にプレビュー表示なしの印刷が実現できます。
詳細については、製品ヘルプの以下の内容をご参照ください。
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- クイックスタート
- レポートを表示する
- Webで表示する
- Flashビューワの使用
- 基本操作
- WebViewerでプレビュー無し直接印刷の設定(Professional)
- サンプルとチュートリアル
- サンプル
- Professionalのサンプル
- Professional Web サンプル - クライアントスクリプトを使用する方法
WebForm上に小さなサイズ(例:1×1)に設定したWebViewerコントロールを配置し、Flashビューワのクライアントスクリプトを使用して印刷を開始します。具体的には、OnLoadProgressイベントでレポートの読み込みが完了した状態("Completed")を取得し、Printメソッドで印刷を開始することにより印刷設定ダイアログが表示され、結果的にプレビュー表示なしの印刷が実現できます。
◆サンプルコード(Javascript)
viewer.setEventsHandler({
OnLoadProgress: function(e) {
if (e.State == "Completed") {
// 印刷オプションを定義します。
var ops = viewer.CreatePrintOptions();
ops.AdjustPaperOrientation = "Auto"; // (用紙方向の調整)
ops.ScalePages = "Auto"; // (用紙サイズの調整)
ops.ClearPageRanges(); // (印刷範囲の初期化)
ops.AddPageRange(1, e.PageCount); // (印刷範囲の設定)
// 印刷を実行します。
viewer.Print(ops);
}
}
})
詳細については、製品ヘルプの以下の内容をご参照ください。
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- サンプルとチュートリアル
- サンプル
- Professionalのサンプル
- Professional Web サンプル
- チュートリアル
- 共通のチュートリアル(ページレポートとセクションレポート)
- Professional
- Flashビューワのカスタマイズ
- StartPrintプロパティを使用する方法
- PDFを使用する方法
PDFを使用する場合、WebViewerコントロールをWebForm上に配置し、そのViewerTypeプロパティを"AcrobatReader"に設定し、OnlyForPrintプロパティをTrueに設定します。このように設定することで、生成されたレポートはビューワ上に表示されることなく、印刷設定ダイアログが表示されます。詳細については、製品ヘルプの以下の内容をご参照ください。
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- 基本操作
- WebViewerでプレビュー無し直接印刷の設定(Professional)
※ PDFを使用する場合、印刷設定ダイアログを表示させずに直接プリンタに印刷することはできません。 ※ WebViewerコントロールはProfessional限定の機能です。Standardではご利用いただけません。 ※ OnlyForPrintプロパティはSP3(7.3.7964.1)で追加された機能です。SP2以前のバージョンではご利用いただけません。最新のサービスパックを適用してください。 ※ OnlyForPrintプロパティをTrueに設定した場合、ブラウザ上(Adobe Reader上)にPDFは表示されません。 - ClickOnce で印刷機能を提供する方法
.NET Framework が提供するClickOnce機能を使用することでWebサーバー上に配置されたWindowsフォームアプリケーションを容易にクライアントに配置することが可能です。
ClickOnce の配置
直接印刷用のWindowsフォームアプリケーションを予め作成し、クライアントからの要求に応じて、当該アプリケーションをClickOnceアプリケーションとしてクライアント側にインストール/実行することで直接印刷を実現することが可能です。
詳細につきましては、こちらのサンプルをご覧ください。
【サンプル動作の概念図】
拡大表示
サーバ側のプリンタに印刷する場合
サーバ上のWebアプリケーションから、PrinterNameプロパティで出力先のプリンタ名を指定し、Printメソッドを使用してレポートを直接印刷します。(この方法は、規模の小さなイントラネットなど、使用環境が限られます。)
クライアントからの要求で、サーバ側から印刷を行う場合に必要となる設定につきましては、マイクロソフト社のWebサイトで公開されている下記の情報をご参照ください。
[サーバーからの Web ベースのレポートの印刷]
[IIS]ASP によるサーバ側での印刷方法について
また、製品ヘルプの以下のトピックもあわせてご覧ください。
PowerTools ActiveReports for .NET 7.0J
- ActiveReportsユーザーガイド
- よくある質問
- セクションレポート
- Web
- 「サーバー側で印刷を行う」
関連情報
- Flashビューワから印刷する時、プリンタのデフォルトの用紙サイズで印刷される
- エクスポートしたPDFを印刷すると、Viewerなどから印刷した場合に比べて、全体的に小さな(大きな)サイズで印刷されてしまいます
- 作成したPDFをAdobe Reader上から印刷する際、レポート作成時に設定した用紙サイズが反映されません。
- Windowsフォームアプリケーションでプレビュー表示せずにレポートを直接印刷する方法は?
- Webアプリケーションでクライアント側にレポートを表示・印刷したい場合、どのような方法がありますか?
キーワード
HowTo 印刷・プレビュー Web サンプル有り