Reporting Services のクライアント側印刷機能の有効化と無効化
Microsoft ActiveX コントロールである RSClientPrint を使用すると、ブラウザで表示されたレポートをクライアント側で印刷することができます。このコントロールによって表示されるカスタム印刷ダイアログ ボックスでは、印刷プレビュー、特定のページや範囲を指定するためのページ選択、ページ余白、ページの向きなど、一般的な印刷ダイアログ ボックスの機能がサポートされています。クライアント側印刷機能は既定で有効になっていますが、無効にして使用できないようにすることもできます。
ActiveX コントロールをダウンロードするには、管理者権限が必要です。
ダウンロードの動作を決定するブラウザの設定
印刷機能を使用する各ユーザーは、クライアント側印刷機能を提供する ActiveX コントロールをダウンロードしてインストールする必要があります。ブラウザの設定によって、コントロールをインストールするかどうかを確認するメッセージが表示される場合と、コントロールをインストールできない場合と、ユーザーへの通知を行わずにコントロールがバックグラウンドでインストールされる場合があります。
Microsoft Internet Explorer では、ActiveX コントロールのダウンロードとインストールに影響を与える設定を、Web コンテンツ ゾーンの [セキュリティの設定] ページの [ActiveX コントロールとプラグイン] ノードで指定できます。印刷コントロールをダウンロードして実行できるかどうかは、Web ゾーンの以下のセキュリティ設定によって決まります。
署名済み ActiveX コントロールのダウンロード。
スクリプトを実行しても安全とマークされている ActiveX コントロールのスクリプトの実行。
ActiveX コントロールとプラグインの実行。
RSClientPrint によるクライアント側印刷機能を使用するには、[署名済み ActiveX コントロールのダウンロード] と [スクリプトを実行しても安全だとマークされている ActiveX コントロールのスクリプトの実行] (インストールに必要)、および [ActiveX コントロールとプラグインの実行] (実行中の印刷操作に必要) を有効にする必要があります。RSClientPrint ActiveX コントロールは署名済みです (つまり、Microsoft の有効なデジタル証明書が含まれています)。
クライアント側印刷機能の有効化と無効化
レポート サーバー管理者は、レポート サーバー システム プロパティの EnableClientPrinting を false に設定することによって、印刷機能を無効にすることができます。これにより、サーバーが管理しているすべてのレポートでクライアント側印刷機能が無効になります。既定では、EnableClientPrinting は true に設定されています。クライアント側印刷機能は、次の方法で無効にすることができます。
Management Studio の [サーバーのプロパティ] ページで [ActiveX クライアントの印刷コントロールのダウンロードを有効にする] を選択します。[サーバーのプロパティ] ページを開くには、Management Studio でレポート サーバー インスタンスに接続し、レポート サーバー ノードを右クリックして、[プロパティ] をクリックします。
レポート サーバー システム プロパティの EnableClientPrinting を false に設定するスクリプトまたはコードを記述します。
次のサンプル スクリプトは、クライアント側印刷機能を無効にする方法の一例を示しています。この MicrosoftVisual Basic コードをコンパイルして実行すると、EnableClientPrinting プロパティが False に設定されます。コードの実行後、IIS を再起動してください。
サンプル スクリプト
Imports System
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim props(0) As [Property]
Dim setProp As New [Property]
setProp.Name = "EnableClientPrinting"
setProp.Value = “False”
props(0) = setProp
Try
rs.SetSystemProperties(props)
Catch ex As System.Web.Services.Protocols.SoapException
Console.Write(ex.Detail.InnerXml)
Catch e as Exception
Console.Write(e.Message)
End Try
End Sub 'Main
End Class 'Sample