Usar el control RSClientPrint en aplicaciones personalizadas

El control ActiveX de Microsoft RSClientPrint proporciona impresión del cliente para los informes mostrados en el Visor de HTML. Ofrece el cuadro de diálogo Imprimir para que un usuario pueda iniciar un trabajo de impresión, obtener una vista previa de un informe, especificar las páginas que desea imprimir y cambiar los márgenes. Durante una operación de impresión del lado del cliente, el servidor de informes representa el informe en la extensión de representación en imágenes (EMF) y utiliza las capacidades de impresión del sistema operativo para crear el trabajo de impresión y enviarlo a una impresora.

La impresión del lado del cliente ofrece un modo de controlar y mejorar la calidad de la copia impresa de un informe HTML anulando la configuración de impresión del explorador y utilizando, en su lugar, dimensiones de página, márgenes, texto de encabezados y pies de página del informe para crear la salida impresa. El control de impresión lee los valores de las propiedades del informe para establecer el tamaño de página y los márgenes.

Los programadores que deseen habilitar la característica de impresión del lado del cliente en barras de herramientas o visores de terceros pueden obtener acceso al control ActiveX por medio del objeto COM RSClientPrint. El control se puede distribuir libremente. En la lista siguiente se ofrecen recomendaciones sobre el uso del control:

  • Utilice el control para mejorar la impresión en informes basados en Web. Puede especificar el objeto en cualquier lenguaje de programación compatible con .NET Framework o en secuencias de comandos. El control no está diseñado para aplicaciones de Microsoft Windows Forms.
  • Copie el archivo .cab de los archivos del programa Reporting Services y agréguelo al código base de la aplicación personalizada.
  • Utilice la etiqueta <OBJECT> para especificar el control.
  • Especifique una dirección URL relativa o completa al archivo .cab en el atributo OBJECT CODEBASE.
  • Especifique la información de versión de su propia aplicación para el archivo .cab con el fin de realizar un seguimiento de la versión que se utiliza en su aplicación.
  • Revise los temas de los Libros en pantalla que abordan la representación en imágenes (EMF) con el objetivo de conocer cómo se representan las páginas para la vista preliminar y la salida.

Información general de RSClientPrint

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, selecciones de páginas para especificar páginas e intervalos de páginas, márgenes y orientación. El control se empaqueta como un archivo CAB. El texto del cuadro de diálogo Imprimir aparece traducido a todos los idiomas admitidos en SQL Server. El control ActiveX RSClientPrint usa la extensión de representación en imágenes (EMF) para imprimir el informe. Se usa la siguiente información del dispositivo EMF: StartPage, EndPage, MarginBottom, MarginLeft, MarginTop, MarginRight, PageHeight y PageWidth. No se admite ninguna otra configuración de información de dispositivo para la representación en imágenes.

Compatibilidad con idiomas

El control de impresión proporciona texto de la interfaz de usuario en distintos idiomas y acepta valores de entrada calibrados para diversos sistemas de medida. El idioma y el sistema de medida utilizados vienen determinados por las propiedades Culture y UICulture. Ambas propiedades aceptan valores LCID. Si especifica un LCID para un idioma que es una variación de un idioma compatible, obtendrá el idioma que más se aproxime. Si especifica un LCID no compatible y para el que no existe ningún otro LCID que se aproxime, obtendrá Inglés (Estados Unidos).

Usar RSClientPrint en el código

El objeto RSClientPrint se utiliza para obtener acceso mediante programación al control ActiveX y a sus métodos y propiedades. El control proporciona un cuadro de diálogo modal para la vista preliminar.

Especificar los valores predeterminados

Puede inicializar el cuadro de diálogo Imprimir con los valores de margen y página del informe. De manera predeterminada, el cuadro de diálogo Imprimir se inicializa con valores de la definición de informe. Puede utilizar los valores predeterminados o especificar valores diferentes mediante el establecimiento de las propiedades en el objeto.

Todas las dimensiones están establecidas es milímetros. La conversión de medidas se produce durante el tiempo de ejecución si las propiedades Culture y UICulture están establecidas con configuraciones locales que no utilizan medidas métricas.

Para conocer qué valores se utilizan para las dimensiones y los márgenes de página, puede utilizar el método GetProperties para recuperar los valores predeterminados:

  • PageHeight y PageWidth especifican el alto y el ancho de página predeterminados. Cuando se inicia el control de impresión, los valores de estas propiedades se utilizan para seleccionar el tamaño de papel más cercano disponible para la impresora actualmente seleccionada. Si el valor de PageWidth es mayor que el de PageHeight, la orientación se establece en Horizontal. De lo contrario, se establece en Vertical.
  • De manera predeterminada, LeftMargin, RightMargin, TopMargin y BottomMargin están establecidos en 0,5 pulgadas.

Estas propiedades están almacenadas en la colección de propiedades Item en el servidor de informes. Los valores se sobrescriben cada vez que se actualiza una definición de informe.

Propiedades de RSClientPrint

Propiedad Tipo RW Valor predeterminado Descripción

MarginLeft

Double

RW

Valor del informe

Obtiene o establece el margen izquierdo. El valor predeterminado, si no lo ha establecido el programador o no está especificado en el informe, es 12,2 milímetros. Para obtener más información sobre los márgenes de informe, vea LeftMargin Element (RDL).

MarginRight

Double

RW

Valor del informe

Obtiene o establece el margen derecho. El valor predeterminado, si no lo ha establecido el programador o no está especificado en el informe, es 12,2 milímetros. Para obtener más información sobre los márgenes de informe, vea RightMargin Element (RDL).

MarginTop

Double

RW

Valor del informe

Obtiene o establece el margen superior. El valor predeterminado, si no lo ha establecido el programador o no está especificado en el informe, es 12,2 milímetros. Para obtener más información sobre los márgenes de informe, vea TopMargin Element (RDL).

MarginBottom

Double

RW

Valor del informe

Obtiene o establece el margen inferior. El valor predeterminado, si no lo ha establecido el programador o no está especificado en el informe, es 12,2 milímetros. Para obtener más información sobre los márgenes de informe, vea BottomMargin Element (RDL).

PageWidth

Double

RW

Valor del informe

Obtiene o establece el ancho de página. El valor predeterminado, si no lo ha establecido el programador o no está incluido en la definición de informe, es 215,9 milímetros.

PageHeight

Double

RW

Valor del informe

Obtiene o establece el alto de página. El valor predeterminado, si no lo ha establecido el programador o no está incluido en la definición de informe, es 279.4 milímetros.

Culture

Int32

RW

Configuración regional del explorador

Especifica el identificador de configuración regional (LCID). Este valor determina la unidad de medida para la entrada del usuario. Por ejemplo, si un usuario escribe 3, el valor se medirá en milímetros si el idioma es el francés, o en pulgadas, si el idioma es el inglés (Estados Unidos). Los valores válidos son: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052 y 3082.

UICulture

String

RW

Valor de cultura del cliente

Especifica la traducción de las cadenas del cuadro de diálogo. El texto del cuadro de diálogo Imprimir está traducido a los idiomas que se indican a continuación: alemán, chino simplificado, chino tradicional, coreano, español, francés, inglés, italiano y japonés. Los valores válidos son: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052 y 3082.

Authenticate

Boolean

RW

False

Especifica si el control envía un comando GET en el servidor de informes para iniciar una conexión para la impresión fuera de sesión.

Cuándo establecer la propiedad Authenticate

Al imprimir desde una sesión del explorador, no es necesario establecer la propiedad Authenticate. En el contexto de una sesión activa, todas las solicitudes del control de impresión que se hacen al servidor de informes se controlan a través del propio explorador. El explorador establece las variables de sesión necesarias para la comunicación con el servidor de informes.

Si realiza una impresión fuera de sesión (por ejemplo, enviando un informe directamente a una impresora sin abrirlo), el control de impresión debe emitir una solicitud HTTP GET para configurar la sesión en el servidor de informes. Para emitir la solicitud GET, la propiedad Authenticate se debe establecer en True.

Sólo hay que emitir la solicitud GET cuando se está utilizando la seguridad integrada de Windows o la autenticación básica. Si se está utilizando la autenticación de formularios, la propiedad Authenticate no se tiene en cuenta. El código de la aplicación debe establecer la sesión y autenticar el usuario mediante la extensión de seguridad personalizada proporcionada. Si se utiliza la autenticación de formularios, es necesario establecer el valor de caducidad de la cookie de autenticación en un valor que conserve las sesiones durante un periodo de tiempo razonable. Si el valor es demasiado bajo, se pedirá los usuarios que proporcionen las credenciales de inicio de sesión cada vez que caduque la cookie.

Método de impresión RSClientPrint

El objeto RSClientPrint es compatible con el método Print utilizado para iniciar el cuadro de diálogo Imprimir. El método Print dispone de los siguientes argumentos.

Argumento E/S Tipo Descripción

ServerPath

Entrada

String

Especifica el directorio virtual del servidor de informes (por ejemplo, https://adventure-works/reportserver).

ReportPathParameters

Entrada

String

Especifica el nombre completo para obtener acceso al informe en el espacio de nombres de carpetas del servidor de informes, incluidos los parámetros. Los informes se recuperan mediante el acceso a una dirección URL. Por ejemplo, "/AdventureWorks Sample Reports/Employee Sales Summary&EmpID=1234"

ReportName

Entrada

String

Nombre corto del informe (en el ejemplo anterior, el nombre corto es Employee Sales Summary). Aparece en el cuadro de diálogo Imprimir y en la cola de impresión.

Ejemplo

El siguiente ejemplo HTML muestra cómo especificar el archivo .cab, el método Print y propiedades en JavaScript:

<BODY onload="Print()">

<OBJECT ID="RSClientPrint" CLASSID="CLSID:FA91DF8D-53AB-455D-AB20-F2F023E498D3" CODEBASE="<URL to the .CAB file>#Version=<your application version information>" VIEWASTEXT></OBJECT>

<script language="javascript">

function Print()

{

RSClientPrint.MarginLeft = 12.7;

RSClientPrint.MarginTop = 12.7;

RSClientPrint.MarginRight = 12.7;

RSClientPrint.MarginBottom = 12.7;

RSClientPrint.Culture = 1033;

RSClientPrint.UICulture = 9;

RSClientPrint.Print('http://localhost/rtm', '%2fEmployee_Sales_Summary&ReportMonth=6&ReportYear=2004&EmpID=20', 'Employee_Sales_Summary')

}

</script>

</BODY>

Vea también

Conceptos

Imprimir informes desde un explorador
Imprimir informes

Otros recursos

Image Device Information Settings

Ayuda e información

Obtener ayuda sobre SQL Server 2005