In NAV 2013, if you run the Windows Client via a Terminal Server or Remote Desktop Connection (RDC) or some common 3rd party application host technology, reports may be difficult to read when you print them. Preview looks fine.
A report could look like this in preview (OK):
But in Print Layout rendering or when printing to paper it would look like this - notice it looks like the fonts have been scrunched and it's hard to read:
When does this happen?
It happens when
A) you run NAV 2013 via a Terminal Server or via Remote Desktop Connection (RDC), and
B) the screen resolution on the connection is not 4/3, and
C) the Terminal Server machine is running Windows 2008 including Windows 2008 R2.
The screen resolution is the important thing here. If we use a screen resolution of 4/3 (=1.33333) then all works fine. So if my RDC looks like this then I don't have this issue:
On this connection the screen resolution in my connection is 1024 by 768. 1024 / 768 = 1.33333, and everything is OK.
But if I set the screen resolution on my RDC like this:
Then my screen resolution = 1366 / 768 = 1.779.
1.779 <> 1.33333 and then I have the problem.
Why?
The root of the problem lies in graphics rendering (GDI) in Windows 2008 when it tries to scale from a screen resolution which is not 1.33333. In Windows 2012, rendering was redesigned to take advantage of hardware acceleration and ActiveX as described in this article:
Windows 8 graphics: Microsoft has hardware accelerated all the things
So we do not have this problem if the host machine is running Windows 2012.
NAV 2013 uses a newer version of Report Viewer which relies more on Windows GDI than previously, which is why we have only started seeing this problem on NAV 2013 installations.
So what can we do?
Based on the above there are three ways out of this problem:
1) Ensure that all users use a screen resolution of 4/3
2) Avoid a host machine trying to scale a client's resolution. For example:
- Save the report to PDF, then print from the PDF document. PDF rendering is not affected by this issue.
- Use server-side printing - for example make use of the Job queue and let NAS print reports. Then the server can ignore what resolution the client has.
- Use other ways than Terminal Server to simplify client installations, such as ClickOnce or possibly "Remote Apps". In this way the client runs on the local machine and not on a host machine.
3) Upgrade the Terminal Server / RDC host machine to Windows 2012. Client machines do not need to be upgraded.
Workarounds 1) and 2) could be hard to enforce in some cases. But knowing about this issue, hopefully the option of using Windows 2012 can be considered.
We will post updates here if and when we find any further details around this issue!