Utilizzo del controllo RSClientPrint in applicazioni personalizzateUsing the RSClientPrint Control in Custom Applications

Il controllo MicrosoftMicrosoft ActiveX RSPrintClient consente la stampa sul lato client dei report visualizzati nel Visualizzatore HTML.The MicrosoftMicrosoft ActiveX control, RSPrintClient, provides client-side printing for reports viewed in HTML Viewer. Offre una finestra di dialogo Stampa per consentire all'utente di avviare un processo di stampa, visualizzare un'anteprima di un report, specificare le pagine da stampare e modificare i margini.It provides a Print dialog box so that a user can initiate a print job, preview a report, specify pages to print, and change the margins. Durante la stampa sul lato client, il server di report esegue il rendering del report con l'estensione per il rendering Immagine (EMF) e utilizza le funzionalità di stampa del sistema operativo per creare il processo di stampa e inviarlo a una stampante.During a client-side print operation, the report server renders the report in the Image (EMF) rendering extension and uses the print capabilities of the operating system to create the print job and send it to a printer.

La funzionalità di stampa sul lato client consente di controllare e migliorare la qualità di stampa di un report HTML evitando l'uso delle impostazioni di stampa del browser del computer in uso e utilizzando invece le dimensioni di pagina, i margini, il testo dell'intestazione e del piè di pagina del report per creare l'output di stampa.Client-side printing provides a way to control and improve the quality of a printout for an HTML report by side-stepping browser print settings on the user's computer, and instead using the page dimensions, margins, header, and footer text of the report to create the print output. Il controllo di stampa legge i valori delle proprietà del report per impostare le dimensioni e i margini delle pagine.The print control reads property values of the report to set page size and margins.

Gli sviluppatori che intendono attivare la funzionalità di stampa sul lato client in barre degli strumenti di terze parti possono accedere al controllo ActiveX tramite l'oggetto COM RSClientPrint.Developers who want to enable the client-side printing feature in third-party toolbars or viewers can access the ActiveX control through the RSClientPrint COM object. La distribuzione del controllo è consentita e gratuita.The control can be distributed freely. Se si desidera utilizzare il controllo, leggere i consigli seguenti:The following list provides recommendations for using the control:

  • Utilizzare il controllo per migliorare la stampa di report per il Web.Use the control to improve printing for Web-based reports. È possibile specificare l'oggetto in qualsiasi script o linguaggio di programmazione compatibile con MicrosoftMicrosoft .NET Framework.NET Framework.You can specify the object in any of the MicrosoftMicrosoft .NET Framework.NET Framework-compatible programming languages or in script. Il controllo non è progettato per applicazioni MicrosoftMicrosoft Windows Form.The control is not intended for MicrosoftMicrosoft Windows Forms applications.

  • Copiare il file con estensione cab dai file di programma di Reporting ServicesReporting Services e aggiungerlo alla base di codice dell'applicazione personalizzata.Copy the .cab file from the Reporting ServicesReporting Services program files and add it to your custom application code base.

  • Usare un tag <OBJECT> per specificare il controllo.Use an <OBJECT> tag to specify the control.

  • Specificare un URL relativo o completo per il file CAB nell'attributo OBJECT CODEBASE.Specify a relative or fully qualified URL to the .cab file in the OBJECT CODEBASE attribute.

  • Specificare le informazioni di versione dell'applicazione personalizzata per il file CAB per tenere traccia della versione utilizzata nell'applicazione.Specify your own application version information for the .cab file to track which version is used in your application.

  • Leggere gli argomenti della documentazione online relativi al rendering in formato immagine (EMF) per comprendere le modalità di rendering delle pagine nell'anteprima e nell'output di stampa.Review the Books Online topics about Image (EMF) rendering to understand how pages are rendered for print preview and output.

Cenni preliminari su RSPrintClientRSPrintClient Overview

Il controllo visualizza una finestra di dialogo di stampa personalizzata che supporta funzionalità comuni ad altre finestre di dialogo di stampa, inclusi l'anteprima di stampa, la selezione delle pagine per specificare pagine e intervalli, i margini delle pagine e l'orientamento.The control displays a custom print dialog box that supports features common to other print dialog boxes, including print preview, page selections for specifying specific pages and ranges, page margins, and orientation. Il controllo è distribuito come file CAB.The control is packaged as a CAB file. Il testo della finestra di dialogo Stampa è localizzato in tutte le lingue supportate da SQL ServerSQL Server.The text in the Print dialog box is localized into all of the languages supported in SQL ServerSQL Server. Per stampare il report, il controllo ActiveX RSPrintClient usa l'estensione per il rendering delle immagini (EMF).RSPrintClient ActiveX control uses the Image rendering extension (EMF) to print the report. Vengono utilizzate le informazioni sul dispositivo EMF seguenti: StartPage, EndPage, MarginBottom, MarginLeft, MarginTop, MarginRight, PageHeight e PageWidth.The following EMF device information is used: StartPage, EndPage, MarginBottom, MarginLeft, MarginTop, MarginRight, PageHeight, and PageWidth. Le altre impostazioni del dispositivo per il rendering in formato immagine non sono supportate.Other device information settings for image rendering are not supported.

Supporto delle lingueLanguage Support

Il controllo include stringhe testo per l'interfaccia utente in diverse lingue e accetta valori di input in vari sistemi di misura.The print control provides user interface text in different languages, and accepts input values calibrated to different measurement systems. La lingua e il sistema di misura usati vengono determinati dalle proprietà Culture e UICulture.The language and measurement system used are determined by the Culture and UICulture properties. che accettano entrambe valori LCID.Both properties accept LCID values. Se si specifica un identificatore LCID per una lingua che è una variante di una lingua supportata, verrà utilizzata la lingua più simile corrispondente.If you specify an LCID for a language that is a variation on a supported language, you will get the language that provides the closest match. Se si specifica un LCID di una lingua non supportata e per la quale non esiste un LCID simile corrispondente, verrà utilizzato l'inglese (Stati Uniti).If you specify an LCID that is not supported and for which no other LCID is a close match, you will get English (United States).

Utilizzo di RSClientPrint nel codiceUsing RSClientPrint in Code

L'oggetto RSClientPrint viene usato per accedere al controllo ActiveX e ai relativi metodi e proprietà a livello di codice.The RSClientPrint object is used to gain access programmatically to the ActiveX control and its methods and properties. Il controllo include una finestra di dialogo modale per l'anteprima di stampa.The control provides a modal dialog for print preview.

Specifica dei valori predefinitiSpecifying Default Values

È possibile inizializzare la finestra di dialogo Stampa con i valori di margine e pagina del report.You can initialize the Print dialog box with margin and page values of the report. Per impostazione predefinita, la finestra di dialogo Stampa viene inizializzata con i valori della definizione del report.By default, the Print dialog box is initialized with values from the report definition. È possibile utilizzare i valori predefiniti oppure specificare valori diversi impostando le proprietà dell'oggetto.You can use the defaults, or specify different values by setting properties on the object.

Tutte le dimensioni sono specificate in millimetri.All dimensions are set in millimeters. La conversione delle misure viene eseguita in fase di esecuzione se le proprietà Culture e UICulture specificano impostazioni locali che non usano il sistema metrico.Measurement conversion occurs at run time if the Culture and UICulture are set to locales that do not use metric measurements.

Per conoscere i valori usati per le dimensioni e i margini delle pagine, è possibile recuperare i valori predefiniti con il metodo GetProperties:To understand which values are used for page dimensions and margins, you can use the GetProperties method to retrieve the default values:

  • PageHeight e PageWidth specificano l'altezza e la larghezza predefinite per la pagina.PageHeight and PageWidth specify the default page height and width. All'avvio del controllo di stampa, i valori di queste proprietà vengono utilizzati per selezionare le dimensioni del foglio più vicine a quelle del report per la stampante selezionata.When the print control is launched, these property values are used to select the closest paper size available for the currently selected printer. Se PageWidth è maggiore di PageHeight, viene impostato l'orientamento orizzontale.If PageWidth is great than PageHeight, the orientation is set to Landscape. In caso contrario, l'orientamento è verticale.Otherwise, it is set to Portrait.

  • L'impostazione predefinita per LeftMargin, RightMargin, TopMargin e BottomMargin è di 12,2 mm.LeftMargin, RightMargin, TopMargin, and BottomMargin are all set to 12.2 millimeters by default.

    Queste proprietà sono archiviate nell'insieme di proprietà Item nel server di report.These properties are stored in the Item properties collection on the report server. I valori vengono sovrascritti ogni volta che la definizione di un report viene aggiornata.The values are overwritten each time a report definition is updated.

Proprietà di RSClientPrintRSClientPrint Properties

ProprietàProperty TipoType LSRW DefaultDefault DescriptionDescription
MarginLeftMarginLeft DoubleDouble LSRW Impostazione del reportreport setting Recupera o imposta il margine sinistro.Gets or sets the left margin. Il valore predefinito è di 12,2 mm se non viene specificato un valore diverso dallo sviluppatore o nel report.The default value if not set by the developer or specified in the report is 12.2 millimeters.
MarginRightMarginRight DoubleDouble LSRW Impostazione del reportreport setting Recupera o imposta il margine destro.Gets or sets the right margin. Il valore predefinito è di 12,2 mm se non viene specificato un valore diverso dallo sviluppatore o nel report.The default value if not set by the developer or specified in the report is 12.2 millimeters.
MarginTopMarginTop DoubleDouble LSRW Impostazione del reportreport setting Recupera o imposta il margine superiore.Gets or sets the top margin. Il valore predefinito è di 12,2 mm se non viene specificato un valore diverso dallo sviluppatore o nel report.The default value if not set by the developer or specified in the report is 12.2 millimeters.
MarginBottomMarginBottom DoubleDouble LSRW Impostazione del reportreport setting Recupera o imposta il margine inferiore.Gets or sets the bottom margin. Il valore predefinito è di 12,2 mm se non viene specificato un valore diverso dallo sviluppatore o nel report.The default value if not set by the developer or specified in the report is 12.2 millimeters.
PageWidthPageWidth DoubleDouble LSRW Impostazione del reportreport setting Recupera o imposta la larghezza della pagina.Gets or sets the page width. Il valore predefinito è di 215,9 mm se non viene specificato un valore diverso dallo sviluppatore o nella definizione del report.The default value if not set by the developer or the report definition is 215.9 millimeters.
PageHeightPageHeight DoubleDouble LSRW Impostazione del reportreport setting Recupera o imposta l'altezza della pagina.Gets or sets the page height. Il valore predefinito è di 279,4 mm se non viene specificato un valore diverso dallo sviluppatore o nella definizione del report.The default value if not set by the developer or the report definition is 279.4 millimeters.
Impostazioni culturaCulture Int32Int32 LSRW Impostazioni locali del browserBrowser locale Specifica l'identificatore delle impostazioni locali (LCID).Specifies the locale identifier (LCID). Questo valore determina l'unità di misura per l'input dell'utente.This value determines the unit of measurement for user input. Se ad esempio l'utente digita 3, il valore verrà misurato in millimetri se la lingua è il francese e in pollici se la lingua è l'inglese (Stati Uniti).For example, if a user types 3, the value will be measured in millimeters if the language is French or inches if the language is English (United States). I valori validi sono: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082.Valid values include: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082.
UICultureUICulture StringString LSRW Impostazioni internazionali del clientClient culture Specifica la lingua delle stringhe della finestra di dialogo.Specifies string localization of the dialog box. Per il testo della finestra di dialogo di stampa sono disponibili le lingue seguenti: cinese semplificato, cinese tradizionale, inglese, francese, tedesco, italiano, giapponese, coreano e spagnolo.Text in the Print dialog is localized into these languages: Chinese-Simplified, Chinese Traditional, English, French, German, Italian, Japanese, Korean, and Spanish. I valori validi sono: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082.Valid values include: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082.
AuthenticateAuthenticate BooleanBoolean LSRW FalseFalse Specifica se il controllo genera un comando GET per il server di report per avviare una sessione per la stampa fuori sessione.Specifies whether the control issues a GET command against the report server to initiate a connection for out-of-session printing.

Quando impostare la proprietà AuthenticateWhen to Set the Authenticate Property

Quando si stampa nell'ambito di una sessione del browser, l'impostazione della proprietà Authenticate non è necessaria.When you print from within a browser session, you do not need to set the Authenticate property. Nel contesto di una sessione attiva, tutte le richieste dal controllo di stampa al server di report vengono gestite tramite il browser.Within the context of an active session, all requests from the print control to the report server are handled through the browser. Il browser imposta le variabili di sessione necessarie per la comunicazione al server di report.The browser sets the session variables necessary for communication to the report server.

Se si stampa fuori dall'ambito di una sessione, ad esempio inviando un report direttamente a una stampante senza prima aprirlo, il controllo di stampa deve generare una richiesta HTTP GET per impostare la connessione con il server di report.If you print out-of-session (for example, sending a report directly to a printer without first opening it), the print control must issue an HTTP GET request to set up the session with the report server. Per inviare la richiesta GET, impostare Authenticate su True.To issue the GET request, you set Authenticate to True.

La generazione della richiesta GET è necessaria solo se si usa la sicurezza integrata di Windows o l'autenticazione di base.You only need to issue the GET request if you are using Windows integrated security or Basic authentication. Se si usa l'autenticazione basata su form, la proprietà Authenticate viene ignorata.If you are using forms authentication, the Authenticate property is ignored. Il codice dell'applicazione deve impostare la sessione e autenticare l'utente utilizzando l'estensione di sicurezza personalizzata fornita dall'utente.Your application code must set the session and authenticate the user using the custom security extension that you provide. Se si utilizza l'autenticazione basata su form, assicurarsi di impostare la scadenza del cookie di autenticazione su un valore che mantenga le sessioni per un intervallo di tempo ragionevole.If you are using forms authentication, be sure to set the expiration value on the authentication cookie to a value that preserves sessions for a reasonable interval. Se il valore è troppo basso, agli utenti verrà richiesto di immettere le credenziali di accesso ogni volta che il cookie scade.If the value is too low, users will be prompted to provide logon credentials each time the cookie expires.

CLSIDCLSIDs

Quando si esegue il report in locale, utilizzare i valori CLSID seguenti.When you are running the report on-premises, you use the following CLSID values.

  • 41861299-EAB2-4DCC-986C-802AE12AC49941861299-EAB2-4DCC-986C-802AE12AC499

  • 5554DCB0-700B-498D-9B58-4E40E58144055554DCB0-700B-498D-9B58-4E40E5814405

  • 60677965-AB8B-464f-9B04-4BA871A2F17F60677965-AB8B-464f-9B04-4BA871A2F17F

    Quando si esegue il report in Windows Azure SQL Reporting, utilizzare i valori CLSID seguenti.When you are running the report in Windows Azure SQL Reporting, you use the following CLSID values.

  • 3DD32426-554D-48C0-A200-65D3BF880E383DD32426-554D-48C0-A200-65D3BF880E38

  • 05662494-ACF9-446A-BE4C-7D3F7EA7F62F05662494-ACF9-446A-BE4C-7D3F7EA7F62F

Supporto di RSPrintClient per il metodo di stampaRSPrintClient Support for the Print Method

L'oggetto RSClientPrint supporta il metodo Print usato per avviare la finestra di dialogo di stampa.The RSClientPrint object supports the Print method used to launch the Print dialog box. Il metodo Print include gli argomenti descritti di seguito.The Print method has the following arguments.

ArgomentoArgument I/OI/O TipoType DescriptionDescription
ServerPathServerPath InIn StringString Specifica la directory virtuale del server di report, ad esempio https://adventure-works/reportserver.Specifies the report server virtual directory (for example, https://adventure-works/reportserver).
ReportPathParametersReportPathParameters InIn StringString Specifica il nome completo del report nello spazio dei nomi delle cartelle del server di report, inclusi i parametri.Specifies the full name to the report in the report server folder namespace, including parameters. I report vengono recuperati mediante l'accesso a un URL,Reports are retrieved through URL access. ad esempio "/AdventureWorks Sample Reports/Employee Sales Summary&EmpID=1234"For example: "/AdventureWorks Sample Reports/Employee Sales Summary&EmpID=1234"
ReportNameReportName InIn StringString Nome breve del report (nell'esempio precedente è Employee Sales Summary)The short name of the report (in the example above, the short name is Employee Sales Summary). che viene visualizzato nella finestra di dialogo di stampa e nella coda di stampa.It appears in the Print dialog box and in the print queue.

EsempioExample

Nell'esempio HTML riportato di seguito viene illustrato come specificare il file con estensione cab, il metodo Print e le proprietà in JavaScript:The following HTML example shows how to specify the .cab file, Print method, and properties in JavaScript:

<BODY onload="Print()">

<OBJECT ID="RSClientPrint" CLASSID="CLSID: 5554DCB0-700B-498D-9B58-4E40E5814405D3" 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>

Vedere ancheSee Also

Stampare i report da un browser con il controllo di stampa (Generatore report e SSRS) Print Reports from a Browser with the Print Control (Report Builder and SSRS)
Stampa di report (Generatore report e SSRS) Print Reports (Report Builder and SSRS)
Impostazioni relative alle informazioni sul dispositivo di acquisizione immaginiImage Device Information Settings