SQL Server Reporting Services (SSRS) Print Issues And Their Solutions
SCOPE
SQL Server Reporting Services (SSRS) is used extensively for reporting operations, and many reports are printed for operational and statutory purposes. When it is integrated with applications, reports are shown using the report viewer control or using web service calls. This article discusses some of the print issues we've seen popularly with such reporting applications, mostly involving report viewer, and how to solve those issues.
PRELIMINARY INVESTIGATION
The first agenda on encountering issues is to isolate the problem and have a clear idea of how, when and for whom it takes place. The answers to these questions can help with Problem Isolation:
- Did this work before without any issues? If yes, what changed? (servers/ patches/ etc.)
- Does issue occur for –
- All or some users
- Does it happen for users that are admin on their boxes?
- Does it happen for users that have content manager role on report manager?
- All or some reports
- Deploy a simple report with only a textbox and no data connection, and test whether issue occurs with that
- Deploy a report that fetches top 10 records from a table and test whether issue occurs
- All or some systems
- Does same issue occur on the server(s) involved?
- Does it happen on same network/ domain?
- All or some users
If using a web application, in order to ensure we're testing the behavior correctly, we can review these Browser Settings:
- Site with report viewer to be added to Local Intranet or Trusted zone (Tools>Internet Options>Security>click the zone, click sites, click advanced, add the site
- Ensure Activex Controls are set to prompt for setup (Tools>Internet Options>Security>click the zone, click Custom Level and ensure Activex Controls are not set to blocked, in addition to the following options)
- Download signed ActiveX controls
- Script ActiveX control marked safe for scripting for installation purposes,
- Run ActiveX controls and plug-ins for ongoing print operations.
- Ensure No proxy in use (Tools>Internet Options>Connections>Lan Settings shows proxy info)
- Launch IE with Run As Administrator on Win 7/Vista/Win 2008.
Additional Logging can be collected on client systems to investigate print issues if we Enable RS Client Print logging –
- When logged on with user credentials on the client system
- Open regedit
- Navigate to HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\80\Reporting Services {if those keys or folders are Not present, they need to be created}
- Then right click the white space on the right to add a new DWORD 32 bit
- Name it - LogRSClientPrintInfo
- Double click it and give it the value 1
ISSUES
- "Unable to load client print control" error on attempting to print reports
- Fonts blurred or incorrectly sized while printing reports
ISSUE: "Unable to load client print control" error encountered (especially by non-admin users) when users attempt to print from a reporting website/ Dynamics CRM/Ax, etc.
SOLUTION:
Update Reporting Services server, report viewer control
Distribute client print control to non-admin users
Test behavior with recommended browser settings
Please confirm the SQL Server Reporting Services version before implementing solution steps! That can be confirmed by reviewing the build number shown on Reporting Services Configuration Manager>Report Server Virtual Directory or Web Service URL or on the report server website or in the Reporting Services log files. 9 -> SQL Server 2005, 10.0 -> SQL Server 2008, 10.50 -> SQL Server 2008 R2
DOCUMENTATION:
For SQL Server 2005 Reporting Services is - http://support.microsoft.com/kb/967511
For SQL Server 2008 R2 - FIX: You are still prompted to install an RSClientPrint control in SSRS 2008 R2: http://support.microsoft.com/kb/2295244
Background info:
SQL Server Reporting Services gives error "Unable to load client print control": http://blogs.msdn.com/b/john_daskalakis/archive/2009/04/23/9564461.aspx
Microsoft Security Advisory: Update Rollup for ActiveX Kill Bits: http://support.microsoft.com/kb/956391/
NON ADMIN Users on Client Systems? Complete these steps to distribute the control for non-admin users –
- Access \Program Files\Microsoft SQL Server\RS Instance like MSSQL.x or MSRS10_50…>\Reporting Services\ReportServer\bin
- Copy rsclientprint.cab file to a preferred location where it can be extracted
- Extract the contents of the cab file
- Copy over all DLL and RLL files to C:\Windows\System32 folder of the client system; Do not copy RSClientPrint.inf
- Register rsclientprint.dll (regsvr32 C:\Windows\System32\rsclientprint.dll)
ADDITIONAL STEPS (that may be needed, based on environment settings):
1. CONFLICT folder could be created if another version of the control is installed in that system. In one environment where users had to access a 2005 and 2008 Reporting Services, where users did not have administrative access, they Not only deployed the RLL and DLL files but also deployed the CONFLICT folder!
2. http://www.microsoft.com/technet/security/bulletin/ms08-052.mspx shows how the kill bit is enabled Search for the GUID of the report viewer control in use especially in this registry hive HKLM\Software\Microsoft\Internet Explorer\ActiveXCompatibility to ensure it is Not kill-bitted.
Ensure it is there in C:\Windows\Downloaded Program Files and there were no Conflict folders
ISSUE Characters on a report are bunched together and become blurry. Report viewer is being used.
SOLUTION:
Ensure server, remote desktop and client system is configured to use display resolution such that Horizontal/Vertical = 4/3 ~ 1.333.
DOCUMENTATION
http://connect.microsoft.com/SQLServer/feedback/details/482312/ssrs-report-font-rendering-issue
http://connect.microsoft.com/SQLServer/feedback/details/403130/sql-reporting-services-2008-print-rendering-issue-font-replacement-font-missing-character-space-compression
http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/0d9d2b53-117c-4cec-9e51-3b678720a75e/
To Be Continued...