Excel print settings do not change when switching printers



Windows DevMode has a limitation of 32 characters. What this means is that printer names cannot be longer than 32 characters... 31 really. 


Why does it matter?

When Excel queries the printers, it is given the printer name information from Windows. Windows DevMode is limited by design and will truncate the name after 31 characters. This information is then passed to Excel which caches the information for faster performance when printing. If the names are identical after they are truncated, Excel will not query the printer for new settings and the cached settings will be used.


Can you provide an example?

When changing printers in the print dialog, you may be switching from a printer that is set to single-sided printing, to another that is set as duplex. For this example these printers are named ThisIsATestNameThatIsReallyLong1 (SINGLE-SIDED) and ThisIsATestNameThatIsReallyLong2 (DUPLEX). Both are 32 characters long, with the only difference being the number at the end.

Your default is ThisIsATestNameThatIsReallyLong1.

When you open the print dialog and choose "ThisIsATestNameThatIsReallyLong2", the setting for single-sided does not change to duplex.

This is because in Excel's cache, both printer names were provided truncated from Windows at the 32nd character. The result is that the name for both of them is ThisIsATestNameThatIsReallyLong. Excel does not detect any change and there is no reason for it to query the printer for the settings that are already cached. Causing Excel's settings to remain as they were... single-sided.


When is it more possible to see this?

This in itself, is usually not a problem because printer names are typically not that long when they are local. However, when using a print server or IPP printers, this has been reported. This is because the printer name includes both the name you assign the printer as well as the print server information. These two fields can quickly use up 32 characters.

What can we do?

As this is the designed behavior of both Windows and Excel, I've listed some workarounds available below if you encounter this issue.



1. Shorten the name of the printer (+ print server) to less than 32 characters.

2. Move the printer name differentiator to the front of the long name so that it is not truncated and Excel can then see the difference in the cached values.

3. Choose a printer that is named entirely different, then go back and re-select the one you'd like.