Habilitar y deshabilitar la impresión del lado del cliente para Reporting Services

El control ActiveX de MicrosoftRSClientPrint proporciona la impresión del cliente para los informes vistos en un explorador. El control muestra un cuadro de diálogo de impresión personalizado compatible con características comunes a otros cuadros de diálogo de impresión, incluida la vista previa de impresión, selecciones de páginas para especificar páginas e intervalos de páginas, márgenes y orientación. Aunque la impresión del lado del cliente está habilitada de manera predeterminada, puede deshabilitar esta característica para impedir que sea utilizada.

Para descargar controles ActiveX se requieren permisos de administrador.

Configuración del explorador que determina el comportamiento de las descargas

Cada usuario que desee utilizar la función de impresión debe descargar e instalar el control ActiveX que ofrece la funcionalidad de impresión del lado del cliente. En función de la configuración del explorador, es posible que al usuario se le solicite instalar el control, se le impida instalar el control o se le obligue a instalar el control de un modo transparente en segundo plano.

En Microsoft Internet Explorer, la configuración que afecta a la descarga e instalación del control ActiveX se especifica a través del nodo Controles y complementos de ActiveX de la página Configuración de seguridad de la zona de contenido web. La siguiente configuración determina si los usuarios pueden descargar y ejecutar el control de impresión en función de las preferencias de seguridad de la zona web:

  • Descargar los controles ActiveX firmados.

  • Activar script de los controles de ActiveX marcados como seguros.

  • Ejecutar los controles y complementos para ActiveX.

Los usuarios que deseen utilizar RSClientPrint para realizar la impresión del lado del cliente deben habilitar Descargar los controles ActiveX firmados y Activar script de los controles ActiveX marcados como seguros para la instalación, así como Ejecutar controles y complementos de ActiveX para las operaciones de impresión en curso. El control ActiveX RSClientPrint tiene firma, lo que significa que contiene un certificado digital válido de Microsoft.

Habilitar y deshabilitar la impresión de cliente

Los administradores de servidores de informes tienen la opción de deshabilitar la función de impresión estableciendo la propiedad del sistema del servidor de informes EnableClientPrinting en false. De este modo se deshabilitará la impresión del lado del cliente para todos los informes administrados por ese servidor. La propiedad EnableClientPrinting está establecida de manera predeterminada en true. Puede deshabilitar la impresión de cliente de las siguientes maneras:

  • Seleccione Habilitar descarga para el control de impresión de ActiveX Client en la página Propiedades del servidor de Management Studio. Para abrir las páginas de propiedades del servidor, conéctese a una instancia de servidor de informes en Management Studio, haga clic con el botón secundario en el nodo del servidor de informes y seleccione Propiedades.

  • Escriba código o script que establezca la propiedad del sistema del servidor de informes EnableClientPrinting en false.

El siguiente script de ejemplo ilustra un enfoque válido para deshabilitar la impresión de lado del cliente. Compile y ejecute el siguiente código de Microsoft Visual Basic para establecer la propiedad EnableClientPrinting en False. Después de ejecutar el código, reinicie IIS.

Script de ejemplo

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