- 30 Apr 2024
- 3 Minutes to read
- Print
- DarkLight
- PDF
Why enable Client-Side Rendering?
- Updated on 30 Apr 2024
- 3 Minutes to read
- Print
- DarkLight
- PDF
Article Details
TitleBlueprint Enterprise: Printing from Windows 10 Apps produces two print jobs for the user.Question
Problem: Printing from Microsoft Edge and other Windows Metro Apps produces two spool files.
With the release of Windows 10, there has been an increase in customers using Windows Metro apps such as the Edge browser or Photos. Metro applications are those which can be obtained from the Windows Store, such as Microsoft Reader, the Edge browser, OneNote, Maps, and Photos.
To handle print jobs from these applications, Microsoft introduced a new datatype for print jobs called XPS2GDI which generates two spool files for each document printed. Unfortunately we’ve seen a couple complications happen because of this new rendering method.
See this Microsoft TechNet article for some helpful information.
“I’m a print server Administrator and I’ve come across this setting “Render print jobs on client computers”. What does this setting mean, and what’s the best practice when it comes to Pharos products?”
What exactly does “Render print jobs on client computers” mean?
Rendering is the process of converting content that a user wants to print into data for the printer to read. On Windows print servers, the job of rendering can take place on the client (called Client-side rendering) or on the server (called Server-side rendering).
When Client-side rendering (CSR) is used…
The Windows client renders the document into a format like PostScript before handing the job over to the print server, resulting in less processing load on the server.
Incidentally these print jobs result in the “RAW” datatype which is easiest for print management software like Pharos to analyze and interpret.
When Server-side rendering (SSR) is used…
The Windows client sends the unrendered print data to the server, and the server does the hard work of rendering the print job. This results in considerably more processing load on the print server, particularly in larger environments.
These print jobs result in spool files with the “Enhanced Metadata Format (EMF)” datatype associated with “Advanced Printing Features” which is incompatible with some Pharos features like Page-Level Color Detection and Watermarking.
Why enable Client-Side Rendering?
This takes the processing load off of your print server, and prevents your print server from becoming a bottleneck.
How do you ensure Client-Side Rendering is enabled?
Below we describe three methods to ensure Client Side Rendering is used. There are slight differences, so read below to figure out which method is best for your organization.
A: Manually enable Client-Side Rendering
Client-side Rendering can be turned on for each printer in Print Management Console, and usually it is already on by default.
Steps:
Open Print Management by pressing Windows key + R, then type printmanagement.msc and hit the enter key.
Next, right-click on the printer you want to manage and choose Properties…
Select the Sharing tab.
Make sure Render print jobs on client computers checkbox is enabled as shown in the screenshot.
NOTE: If this setting is already present on the queue, uncheck client rendering, apply the change, recheck it, and apply the change one more time. This creates a necessary setting in the Windows Registry that is passed to the connected clients the next time they use the queue.
WARNING: Windows 8 and 10 laptops and tablets (specifically anything with a battery) may ignore this setting and use Server Side Rendering anyway. According to Microsoft this behavior is by design to save power. If you have these devices in your network, try using one of other methods to set Client Side Rendering like the PowerShell script.
B: Automatically enable Client-Side Rendering with PowerShell
We like this method a lot more because it will apply to all Windows printing clients (whether they have a battery or not) and is a lot faster, especially when you have lots of printers.
The downside is that you would need to re-run this command whenever new printers are added to your server.
Steps:
Log into your Windows 2012 or newer print server.
Open an elevated PowerShell command prompt window.
Run this command to set the Rendering Mode for all printers to Client-Side Rendering (CSR):
Set-Printer -Name <PrinterName> -RenderingMode CSR
. (Pro Tip: try using the wildcard character * instead of each PrinterName to run this command on all your printers at once!)
C: Enforce Client-Side Rendering with Group Policy
Maybe you like the idea of configuring this automatically, but you’re afraid of PowerShell. Lucky for you there’s always more than one way to do something in Windows.
If your workstations are domain-joined, then it’s also possible to manage this setting with Group Policy.
Steps:
Run gpmc.msc.
Create a new Group Policy and apply it an OU that contains the client computers.
Go to Computer Configuration > Administrative Templates > Printers > “Always render print jobs on server” > Edit.
Select Disabled, then click OK.