Webアプリケーションでプレビュー表示せずにレポートを印刷する方法は?【※サンプル有り】

文書番号 : 33895     文書種別 : 使用方法     登録日 : 2012/12/19     最終更新日 : 2014/04/21
文書を印刷する
対象製品
ActiveReports for .NET 7.0J
詳細
Webアプリケーションでプレビュー表示せずにレポートを印刷する場合、印刷したいプリンタの場所によって実装方法が異なります。
  1. クライアント側のプリンタに印刷する場合
  2. サーバ側のプリンタに印刷する場合


クライアント側のプリンタに印刷する場合

ActiveReports for .NET 7.0J を使用した Webアプリケーションで、クライアント側のプリンタに直接印刷する場合、いくつかの方法が考えられます。

  1. Flashビューワを使用する方法
    Flashビューワを使用する場合、WebViewerコントロールをWebForm上に配置し、そのViewerTypeプロパティを"FlashViewer"に設定してください。なお、Flashビューワを使用した直接印刷には、StartPrintプロパティを使用する方法と、クライアントスクリプトを使用する方法があります。

    Flashビューワを使用する場合、印刷設定ダイアログを表示させずに直接プリンタに印刷することはできません。
    WebViewerコントロールはProfessional限定の機能です。Standardではご利用いただけません。

    1. 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 サンプル

    2. クライアントスクリプトを使用する方法
      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ビューワのカスタマイズ

  2. 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は表示されません。

  3. ClickOnce で印刷機能を提供する方法
    .NET Framework が提供するClickOnce機能を使用することでWebサーバー上に配置されたWindowsフォームアプリケーションを容易にクライアントに配置することが可能です。

    ClickOnce の配置

    直接印刷用のWindowsフォームアプリケーションを予め作成し、クライアントからの要求に応じて、当該アプリケーションをClickOnceアプリケーションとしてクライアント側にインストール/実行することで直接印刷を実現することが可能です。

    詳細につきましては、こちらのサンプルをご覧ください。

    【サンプル動作の概念図】
    サンプル動作の概念図
    拡大表示


サーバ側のプリンタに印刷する場合

サーバ上のWebアプリケーションから、PrinterNameプロパティで出力先のプリンタ名を指定し、Printメソッドを使用してレポートを直接印刷します。
(この方法は、規模の小さなイントラネットなど、使用環境が限られます。)

クライアントからの要求で、サーバ側から印刷を行う場合に必要となる設定につきましては、マイクロソフト社のWebサイトで公開されている下記の情報をご参照ください。

[サーバーからの Web ベースのレポートの印刷]

[IIS]ASP によるサーバ側での印刷方法について

また、製品ヘルプの以下のトピックもあわせてご覧ください。

PowerTools ActiveReports for .NET 7.0J
 - ActiveReportsユーザーガイド
  - よくある質問
   - セクションレポート
    - Web
     - 「サーバー側で印刷を行う」
関連情報
キーワード
HowTo 印刷・プレビュー Web サンプル有り