Enable and Disable Client-Side Printing for Reporting Services
Updated: September 14, 2015
Applies To: SQL Server 2016 Preview
The print button on the report viewer toolbar uses the Portable Document Format (PDF) format for client-side printing of Reporting Services reports viewed in a browser. The new remote printing experience uses the PDF rendering extension that is included with Reporting Services, to render the report in PDF format. You can download a .PDF form of the report or if you have an application installed for viewing .PDF files, the print button displays a print dialog box for page common configuration items such as page size an orientation and a preview of the .PDF file. Although client-side printing is enabled by default, you can disable the feature to prevent it from being used.
Previous versions of Reporting Services used an ActiveX control that required downloading to the client computer from the report server. If you upgrade your report server to SQL Server 2016, the print control is not removed from the report server or client computers.
When you click the print button on the report viewer toolbar, the experience varies depending on what .PDF viewing applications are installed on the client computer and what browser you are using. You can download the PDF file or configure print options from a dialog, or both, depending on the client computer.
The first dialog is the same for all browsers and allows you change basic layout properties such as orientation. When you click Print, the experience will be slightly different depending on the browser you are using.
In Chrome, a detailed browser print dialog opens. You can change the print configuration, print, and open the operating systems print dialog.
If you have a PDF reader application installed, the print button will open a preview windows of the PDF file and you can save or print.
If you do not have a PDF reader application installed, there are two user expereinces:
If the print button the report viewer toolbar is disabled, verify the following:
Client-side printing is disabled for the report server in Management Studio. See the section Enable and Disable Client-Side Printing in this topic.
The SQL Server 2016 Reporting Services (SSRS) PDF rendering extension is disabled. Review the <Extension Name="PDF" section of the rsreportserver.config file.
You are viewing the reporting in comparability mode, which uses the old SQL Server 2016 Reporting Services (SSRS) HTML4 rendering engine. The PDF printing experience requires the HTML 5 rendering engine. Click the Try Preview button on the toolbar.
Report server administrators have the option of disabling the remote print feature by setting the report server system property EnableClientPrinting to false. This will disable client-side printing for all reports managed by that server. By default, EnableClientPrinting is set to true. You can disable client-side printing in the following ways:
For a Native mode report server:
Start Management Studio with administrative privileges.
Connect to a report server instance in Management Studio.
Right-click the report server node, and then click Properties. If the Properties option is disabled, verify you started Management Studio with administrative privileges.
Set to True or False and then Click OK.
For a SharePoint mode report server:
In SharePoint Central Administration, click Application Management.
Click Manage service applications.
Click the name of your Reporting Services service application, and then click Manage in the SharePoint ribbon.
Click System Settings.
Select Enable Client Printing. The Enable Client Printing option is near the bottom of the page.
Write script or code to set the report server system property EnableClientPrinting to false.
The following sample script illustrates one approach for disabling client-side printing. Compile and then run the following Microsoft Visual Basic code to set the EnableClientPrinting property to False. After you run the code, restart 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