Activation et désactivation de l'impression côté client pour Reporting Services

Le contrôle Microsoft ActiveX, RSClientPrint, permet une impression côté client des rapports affichés dans un navigateur. Le contrôle affiche une boîte de dialogue d'impression personnalisée qui prend en charge les fonctionnalités communes aux autres boîtes de dialogue d'impression, notamment l'aperçu avant impression, les options de pages pour les choix spécifiques liés aux pages, aux plages, aux marges des pages et à l'orientation. Bien que l'impression côté client soit activée par défaut, vous pouvez désactiver cette fonctionnalité pour l'empêcher d'être utilisée.

Des autorisations d'administrateur sont nécessaires pour le téléchargement des contrôles ActiveX.

Paramètres de navigateur qui déterminent le comportement du téléchargement

Chaque utilisateur souhaitant utiliser la fonctionnalité d'impression doit télécharger et installer le contrôle ActiveX qui permet l'impression côté client. En fonction des paramètres du navigateur, l'installation du contrôle peut être demandée à l'utilisateur, être bloquée ou s'effectuer de manière transparente en arrière-plan.

Pour Microsoft Internet Explorer, les paramètres qui affectent le téléchargement et l'installation du contrôle ActiveX sont spécifiés via le nœud Contrôles ActiveX et plug-ins de la page Paramètres de sécurité de la zone de contenu Web. Les paramètres suivants déterminent si les utilisateurs peuvent télécharger et exécuter le contrôle d'impression, en fonction des spécifications de sécurité de la zone Web :

  • Télécharger les contrôles ActiveX signés.

  • Contrôles ActiveX reconnus sûrs pour l'écriture de scripts.

  • Exécuter les contrôles ActiveX et les plug-ins.

Les utilisateurs qui souhaitent se servir de RSClientPrint pour effectuer une impression côté client doivent activer Télécharger les contrôles ActiveX signés et Contrôles ActiveX reconnus sûrs pour l'écriture de scripts dans le cadre de l'installation, ainsi que Exécuter les contrôles ActiveX et les plug-ins pour les opérations d'impression en cours. Le contrôle ActiveX RSClientPrint est signé, ce qui signifie qu'il contient un certificat numérique valide émis par Microsoft.

Activation et désactivation de l'impression côté client

Les administrateurs du serveur de rapports ont la possibilité de désactiver la fonctionnalité d'impression en affectant la valeur false à la propriété système EnableClientPrinting du serveur de rapports. Cela entraîne la désactivation de l'impression côté client pour tous les rapports gérés par ce serveur. Par défaut, EnableClientPrinting a la valeur true. Vous pouvez désactiver l'impression côté client de différentes façons :

  • Sélectionnez Activer le téléchargement pour le contrôle d'impression client ActiveX dans la page Propriétés du serveur de Management Studio. Pour ouvrir les pages Propriétés du serveur, connectez-vous à une instance de serveur de rapports dans Management Studio, cliquez avec le bouton droit sur le nœud du serveur de rapports, puis sélectionnez Propriétés.

  • Écrivez un script ou un code qui attribue à la propriété système du serveur de rapports EnableClientPrinting la valeur false.

L'exemple de script suivant illustre une approche possible en matière de désactivation de l'impression côté client. Compilez et exécutez le code MicrosoftVisual Basic suivant afin d'affecter à la propriété EnableClientPrinting la valeur False. Une fois le code exécuté, redémarrez les services Internet (IIS).

Exemple de script

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