Windows 7, bitmap fonts and Microsoft Dynamics GP

David Meego - Click for blog homepageThis is a reposting of an article I originally wrote on my Developing for Dynamics GP blog.

I have a story to tell….. and it even has a happy ending.

During the last week of August 2009, I was over in Sydney at the Microsoft Office in North Ryde for meetings and to catch up with my Australian based colleagues on the Asia Pacific support team for Microsoft Dynamics GP.  While there I downloaded the DVD images for Windows 7;  both the internal Microsoft IT Windows 7 Enterprise build and the Windows 7 Ultimate RTM build.

When I returned home in early September, I rebuilt my laptop with Windows 7 using the internal Windows 7 Enterprise install. I noticed that the font size in Microsoft Dynamics GP (and some other older applications) was incorrect.  Eventually (after two weeks of not being able to fix the font issue), I rebuilt my machine with the Windows 7 Ultimate install and the problem was gone.  At the time I believed that it was somehow related to the internal build only and so would not affect people outside of Microsoft.  Thus there was no reason to write about it publically on the blog.

Here is an example of what I mean, using the main window of my favourite add on product, the Support Debugging Tool for Microsoft Dynamics GP.  I am not biased really…. 🙂

sdt_bad

The window should look like this:

sdt_good

The issue affects the Dexterity “System” font used by Microsoft Dynamics GP. It has also shown up in some older applications which use the same font.  This font is actually the bitmap MS Sans Serif font at the Windows level but is called “System” in the Dexterity development environment. Most newer applications use fonts as specified by the Window’s themes and so do not have any issues.  Note there is a font at the Windows level called “System”, but that is not related to this issue.

In the screenshots above, you will notice that the prompts and fields on the window, which use the MS San Serif font, are displayed a couple of points bigger than they should be, this causes the writing to get cut off and the window to look ugly.  Also note that the fonts in the window title bar, the menu bar and the heading are the same size in both screen shots and that they are smoothed using ClearType… this is because they are using TrueType scalable fonts and not a bitmapped font.


Moving forward in time about 3 months…..

I came across a newsgroup post in which Andrew Cooper mentioned that the fonts on his system where bigger than they should be.  This sounded very familiar and meant that the issue was not limited to inside Microsoft and so would need to be investigated again.

Below is a summary of what is happening and the details of the fix required. Thanks to Peter Constable of the Windows 7 Development team for helping explain what was happening.

Research showed that many users with high resolution monitors (particularly LCD flat screens) were running the monitors at lower resolutions than the native resolution of the screen. This was usually because at the native resolution, the fonts were becoming too small to read, so the users would decrease the resolution.

Windows includes a facility to increase font and window sizes while keeping the screen at the native resolution.  This is a much better method of increasing the font size as it can produce much smoother images by using many more, smaller pixels. The really significant issue is, unlike CRT monitors, flat-panel LCD monitors have a fixed pixel size, or “resolution”, and that when users change to a lower resolution (in order to increase text size) the system has to re-sample the lower-resolution display image into its fixed resolution causing a significant degradation in display quality: not just text looks worse, everything looks worse.

A change was made for Windows 7, to set the screen resolution to the monitor’s native resolution and if the screen is over a certain resolution to default the font size 120 DPI (dots per inch). This is approximately 125% of normal 96 DPI (100%). When the system defaults to 125% DPI it also adjusts the MS Sans Serif font to be bigger.  If the user then decides to set the DPI back to 100%, then TrueType fonts, which are scalable, adjust as expected. But the bitmap MS Sans Serif font does not: it remains at the larger size, hence our issue. This problem does not occur if Windows 7 keeps DPI at 100% when it is first installed.

In my case, the internal Windows 7 Enterprise build had an appropriate video driver for my machine and was able to go to the native resolution (1920 x 1200) and default to 125% DPI.  As my machine is older, when I installed the Windows 7 Ultimate build, it did not have the video driver and so defaulted to a lower resolution at 100% DPI.  Once I installed the video driver from Windows Update, I was able to get to the native resolution and remain at 100% DPI.  Because the initial setting was 100% DPI, the MS Sans Serif font was the correct size.

I realised that the issue is not an internal problem, but can occur on any Windows 7 system that has a high resolution monitor for which drivers can be found during the initial install and so default with 125% DPI. If the user returns to 100% DPI, the MS Sans Serif bitmap font will remain larger.

The solution took a while to find, but is really simple.  We just need to make some registry changes and reboot.

Note: The registry changes do not take effect until the system has been restarted. You MUST reboot after making the registry changes.

The Registry setting HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontsMS Sans Serif 8,10,12,14,18,24 is set to SSERIFF.FON on a system which started at 125% DPI. The setting is set to SSERIFE.FON on a system which started at 100% DPI.  Notice that one character of the file name changes from F to E.

The actual font files used might be different on Windows systems for other languages or code pages. See the table below for the file names:

125% DPI font file 100% DPI font file
SSERIFF.FON SSERIFE.FON
SSERIFFE.FON SSERIFEE.FON
SSERIFFG.FON SSERIFEG.FON
SSERIFFR.FON SSERIFER.FON
SSERIFFT.FON SSERIFET.FON
SSEF1255.FON SSEE1255.FON
SSEF1256.FON SSEE1256.FON
SSEF1257.FON SSEE1257.FON
SSEF874.FON SSEE874.FON

While we are fixing the MS Sans Serif font, we can also fix the MS Serif and Courier fonts. These are the Registry settings MS Serif 8,10,12,14,18,24 and Courier 10,12,15 values in the same registry key. See the table below for the file names:

125% DPI font file 100% DPI font file 125% DPI font file 100% DPI font file
SERIFF.FON SERIFE.FON COURF.FON COURE.FON
SERIFFE.FON SERIFEE.FON COURFE.FON COUREE.FON
SERIFFG.FON SERIFEG.FON COURFG.FON COUREG.FON
SERIFFR.FON SERIFER.FON COURFR.FON COURER.FON
SERIFFT.FON SERIFET.FON COURFT.FON COURET.FON
SERF1255.FON SERE1255.FON COUF1255.FON COUE1255.FON
SERF1256.FON SERE1256.FON COUF1256.FON COUE1256.FON
SERF1257.FON SERE1257.FON COUF1257.FON COUE1257.FON

To fix the system you need to change the settings to new file names (changing the appropriate letter from F to E) and reboot.

Note: The registry changes do not take effect until the system has been restarted. You MUST reboot after making the registry changes.

Below are the contents of Font Fix.reg file to make the changes for an English system:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFonts]
“MS Sans Serif 8,10,12,14,18,24″=”SSERIFE.FON”
“MS Serif 8,10,12,14,18,24″=”SERIFE.FON”
“Courier 10,12,15″=”COURE.FON”

An archive of the Font Fix.reg file for an English system is also provided as an attachment at the bottom of this post.

While I have focussed on the MS Sans Serif bitmap font (as this is the one used by Microsoft Dynamics GP) as well as the MS Serif and Courier fonts, this issue is likely to affect other bitmap fonts.  Other bitmap fonts can be found in the WindowsFonts folder as *.FON files and in the same registry location.

Note: Build 18 of the Support Debugging Tool adds a user interface for making the registry changes discussed in this post.

I hope you find this information helpful.

David

02-Dec-2009: Please see follow up post: More on Windows 7, bitmap fonts and DPI settings.

09-Dec-2009: Further highlighting of the need to reboot after making registry changes.

31-Aug-2014: Build 18 of the Support Debugging Tool adds a user interface for making the registry changes discussed in this post.

06-Oct-2022: Fix broken images.

Font Fix.zip

This article was originally posted on the Developing for Dynamics GP Blog and has been reposted on http://www.winthropdc.com/blog.

76 thoughts on “Windows 7, bitmap fonts and Microsoft Dynamics GP

    • WinthropDC's avatar

      Hi Anthony

      Bitmap fonts only have 100% and 120% sizes, which are controlled by the registry settings as discussed in the article. If you want a different size to that you need to ask the developer of the software.

      David

  1. Fredrik's avatar

    Your article saved me tremendous trouble. I installed our company’s software application on a refurbished computer intended to be licensed to a customer. In fact, we bought ten of these computer models. The application looked horrible due to exactly the same problem as above. To finally find that there exist a workaround to this peculiar problem is truly a blessing. Thanks for sharing!

    • Robert A Skehan's avatar

      David – having the same issue in Windows 10. The regedit process as outlined for Win 7 does not appear to be the same for Windows 10. Can you elaborate. Boy, would I like to fix this problem.

      Thank you!

      • WinthropDC's avatar

        Hi Robert

        You do need to reboot after making the changes. Please note that this only can change between 100% and 120%. I have it set to 100%.

        Windows 10 runs at 100% DPI on my 27″ external monitor (2560×1440) and 150% DPI on my Surface Book screen (3000×2000) and this works well for me.

        David

      • Robert A Skehan's avatar

        Okay – but I am not clear on how to amend the regedit settings for Win10. When I go into regedit as you explained in your article I do not seam the same font entries. Can you elaborate? Thank you!

      • WinthropDC's avatar

        Hi Robert

        I looked at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts and can see the *.FON files for the bitmap fonts. I am running Windows 10 Pro.

        David

  2. Bob Skehan's avatar

    David – are you available for a consultant like call? I am willing to pay you for your time. I simply cannot solving the font scaling issue within certain applications. I am running windows 10 pro on a surface pro 3. Tx

  3. joann schrementi-hoffman's avatar

    my default is 100, i want 125!!!!! tried everything , want 125 font, won’t light up the apply button

    • WinthropDC's avatar

      Hi Joann

      Are you using Support Debugging Tool or GP Power Tools? Both need the application “Run as Administrator” to have permissions to update the registry.

      Also a reboot is required afterwards for the change to take effect.

      David

  4. Thomas's avatar

    Great post. I had trouble with a company application which looked terrible on our new dell precision machines running win 7 and i spent hours for error analysis. – After registry change to the “normal” fonts, everything looks as it should.

  5. Willy's avatar

    Thanks for the tip!

    Additionally I’d like to suggest one more font change with same importance, as changing of the above three didn’t resolve my case:

    Small fonts – SMALLF.FON with SMALLE.FON (and the respective family).

  6. Nahameth's avatar

    Hello!

    Thank you so much David! I work at Emerson Process Management and had a lot of trouble with that until I read your Post today!
    You are so great!

Leave a Reply to FredrikCancel reply