Windows 7, bitmap fonts and Microsoft Dynamics GP
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 wrote about this at the time: Windows 7 and Microsoft Dynamics GP.
What I did not mention in the previous article is that 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.... :-)
The window should look like this:
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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\MS 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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"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 \Windows\Fonts 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.
Comments
Anonymous
November 24, 2009
David, Thank you so much for documenting all of this! -VictoriaAnonymous
November 25, 2009
From DynamicAccouning.net http://msdynamicsgp.blogspot.com/2009/11/solving-win-7-font-issues-with-dynamics.htmlAnonymous
November 26, 2009
David, as always, you are a Dexterity leader for us. :) Thank you!Anonymous
November 27, 2009
The comment has been removedAnonymous
December 08, 2009
Hi, i have done what is suggested and still get the same result. Large font displayed. What i did was: Downloaded the reg file, and clicked run.Anonymous
December 08, 2009
And then rebooted?Anonymous
January 04, 2010
My system was OK till I did change the locale settings for non-Unicode programs, and everything became messed up. The problem is solved partially with fontfix.reg, but unfortunately my Spyder 2 profile loader is now using font that is bold or some other type of the font like System. I am going insane with it.Anonymous
January 05, 2010
Hi Val If you can find a machine that has the fonts working as desired, you could export the entire registry settings from that machine and import them onto your machine, that should "fix" your issue. Export your registry settings first as a backup. DavidAnonymous
January 06, 2010
Hey , i had been experiencing this problem for a couple of days, i didnt know why , so i dw'ed ur regfix , it worked , and after a 3rd reboot it was back like b4 (messed up ) i used the fixer again it didnt work this time, so what i did was to check what exactly ur fix was rlly modifying so i followed the key , and GUESS WHAT ? i installed a game 2 days ago (lef4dead) and now the [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFonts] had some fonts within with their current data value changed to WHERE i installed the game! and the fonts in question were those that u described in ur fix :O , now the problem is , what should i do from here ? should i change the data value like the others are ? ( 10 fonts currently have data value changed to the game location :S ) but i dont know the default values , or should i delete them ? (if i do that i know something terrible will happen ) thx in advance !Anonymous
January 06, 2010
AH , nvm , i just fixed it :D , i deleted the all the locations from the value data of every affected font and only let intact the name of the font in the value data xD woot !!Anonymous
February 25, 2010
The comment has been removedAnonymous
February 25, 2010
Robin, The definitive solution would be to contact Microsoft Windows support as this type of issue would fall under their support team. patrickAnonymous
February 25, 2010
Hi Robin I would agree with my colleague Patrick that you should log a support case. However, I would first try the game developer to find out what font files and settings they are using. Then you might be able to repair these files or settings to fix the console font. Also, have you tried re-installing the games since applying the font fix from my blog post. DavidAnonymous
May 09, 2010
The comment has been removedAnonymous
July 12, 2010
Nice! Great fix. Thanks a lot for the detailed description.Anonymous
October 27, 2010
Thank you so much for this!Anonymous
December 16, 2010
In the case of the font being too small in GP but ok for most other programs could this be the same issue in reverse? If so what would the registry settings needs to be changed to? Thank you for any information.Anonymous
December 16, 2010
Hi lkp If your system initially defaulted to 100%, but now you want 125%, then yes, you could have this issue in reverse. You would need to check the registry settings for the fonts as mentioned in the post. DavidAnonymous
January 28, 2011
Just a side note: I've had a laptop where the 1080p display came from the OEM with a 120dpi default. However, all of the fonts were set as expected (i.e. Serife.fon and not Seriff.fon). The solution in my case was to change the system DPI from 120 to 96. You need to make a few changes in the registry: HKLMSoftwareMicrosoftWindows NTCurrentVersionFontDPI. Set LogPixels to 0x60 (96). This corresponds to changing the DPI setting via the display control panel; however, if your default system DPI came as 120, certain dialogs will get messed up. [Note: You may also need to change HKLMSoftwareWow6432NodeMicrosoftWindows NTCurrentVersionFontDPI if you're running a 64-bit OS.] The System-wide DPI on the other hand is set at: HKLMSystemCurrentControlSetHardware ProfilesCurrentSoftwareFonts. Again, change LogPixels to 60 (96 decimal). I actually just searched through the whole registry and set all of those values to 96 DPI, then rebooted. That didn't actually fix my problem initially for some reason, so now the default DPI was listed as 96, and I set the DPI to 120, rebooted, then set it back to 96, rebooted, and finally everything looks correct. Hope that helps! Jarred WaltonAnonymous
January 31, 2011
Hi Jarred Thanks for your feedback. You should be able to change the DPI setting back to 100% using the Display properties user interface. The Registry changes listed on the post are just to "fix" the bitmapped fonts which are not controlled by changing the DPI. They are only set once when the system is first installed and if the system defaults to 125% DPI, they will be too large when the DPI is returned to 100%. DavidAnonymous
February 09, 2011
Thank You SO much for this article, I have struggled with this problem many days. This solved my problems. Many thanks !Anonymous
May 03, 2011
Thanks, this definately worked. We'd actually like to use 150% (very big screens) font size instead of 125%. Is there a font name difference for that size? Or does it just expand the 125% font?Anonymous
May 03, 2011
Hi Kevin There are only two sets of bitmap font files in the C:WindowsFonts folder. So, I would say it works with the 125% font. Keep in mind that the bitmap fonts are a legacy from older versions of windows that did not offer 150% as an option. DavidAnonymous
July 12, 2011
Awesome! Solved the problem we were having. Thank you for taking the time to post the solution and for the explanation.Anonymous
September 05, 2011
The comment has been removedAnonymous
January 11, 2012
Thanks - this has solved an nagging problem that we have had with a legacy app. not displaying correctly. Many thanksAnonymous
January 19, 2012
Awesome! Thanks a million for this post! Thought I was going mad...Anonymous
June 13, 2012
David, You are a Lifesaver man!Anonymous
September 09, 2012
On Windows 7 it seems to change properly. I changed it from 125% font size to 100% and it also seemed to change the DPI as well. The reg changes that Jarred mentioned seem to be irrelevant as they are set 120 but it shows like it is 96 anyways. All the fonts in the system appear to be displaying correctly now that I changed the font size to 100%. I guess 125% is just for higher resolutions?Anonymous
January 08, 2013
Thanks for this - solves the problem nicely. The reason why many apps still use these fonts as they are pretty much guaranteed to exist in any region/language. Does anyone happen to know if Microsoft has resolved this issue in WIndows 8?Anonymous
January 08, 2013
Thank you for this. I was having similar problems with Automated Build Studio (SmartBear). The fonts weren't overly large, but the panels were drawn too large for the containing window. Therefore, I couldn't click on the buttons that should have been on the right side of the dialogs. I also saw the issue in the initial msi extraction screen on setup.exe's built using InstallShield. The initial dialog was too large for the contents. It only happened on my machine, so I assumed it was just a fluke. Turns out, it was Microsoft trying to be smart.Anonymous
January 17, 2013
Hi, we have migrated to WIN7 recently and had the same issue with a couple of software. We used the fix and it solved the font size problem however, it caused one of the software not to be responsive any longer. The menus are extremely slow and you can select any item but you can move over different menus. So we had to revert back the fix. Any idea what can cause the software (H2OMap by Innovyze) to stop responding?Anonymous
January 17, 2013
Hi Sean This registry fix only changes the files used for bitmap fonts. It has no other effects. I suggest you talk to the developers of the application in question. Thanks DavidAnonymous
January 30, 2013
Just wanted to add my thanks for documenting this issue and solution! Note that in my case it was not so obvious that the font sizes were wrong, but there were other unexplained UI layout issues (controls overlapping each other, etc) with an application that worked fine before upgrading a machine to Windows 7. But the font issue must have been the root cause, since this solved it. Thanks again!Anonymous
March 25, 2013
It works. Thanks a lot.Anonymous
March 25, 2013
Hi Stefano Glad to be of assistance. DavidAnonymous
July 29, 2013
Thank you!!! I've been pulling my hair out trying to get Excel to display the default font (Arial) as it did in Windows XP at 75% zoom. Your post helped me think to look at the registry value Small Fonts (120) which pointed to SMALLF.FON. I changed this to SMALLE.FON and voila, back to the very readable screen font for Arial 10 at 75%!Anonymous
November 12, 2013
Excellent! Thank you.Anonymous
December 07, 2013
Hi. I'm not sure if my problem really is relevant to your fix. If it is, I can't get it working. Here is an example screenshot of my problem: dl.dropboxusercontent.com/.../contentbug.png Any ideas! ThanksAnonymous
December 07, 2013
Hi Quvu It could be related, but it looks like the application does not support scaling. Does it work if the display is set to 100% DPI? If you look at the properties of the short you use to launch the app, on the compatibility tab there is an option to disable scaling. Try enabling that. DavidAnonymous
January 14, 2014
A very helpful article. Thank you so much! But unfortunately it seems like it's only curing the symptoms not the illness. What I mean is that if you switch the setting for non-Unicode aware applications in the regional settings you get wrong font settings again (F instead of E). IMO curing the illness would be checking out where the default of 125% is stored and fix it. BenAnonymous
January 15, 2014
Great article! Did not only solve my issue but also let me understand why it is caused!Anonymous
January 15, 2014
Hi Ben and Martin Glad the article was able to help you out. DavidAnonymous
January 27, 2014
David, I have encountered many "FONT" related issues over the past few years, a lot of this is due to the 'age' of the eyes using the system. So, my issue is more related to the 'SMALL' font size on the system. When we updated to GP2013 last December one of my clients started complaining about the font size on her screen. I know that the users screen resolution is set so that she can see her screen with larger fonts and images. This appears to work for all applications with the exception of Microsoft Dynaimcs GP2013. When a screen opens for GP, the menu font (top bar) is normal - for this user size - but the font size inside the window is too small. Any suggestions? BilllAnonymous
January 27, 2014
Hi Bill You need to make the opposite change to the one suggested in this article. Your bitmap fonts are at 100% size while the rest of the system is at 125% or 150%. You need to edit the registry to change the E fonts to the F fonts and then reboot. Basically, the bitmap font size is set once on install and then can only be changed by editing the registry. DavidAnonymous
February 18, 2014
David, thank you for your article. I have had this problem for a few months with a VB6 app. It displayed correctly on other Window 7 machines. Made the registry changes, rebooted and now it looks great. Thanks again. KeithAnonymous
February 19, 2014
Thank you so much for the article. Fix mentioned is working like a charm.Anonymous
June 29, 2014
Great! So glad I found this article, now my Delphi application works on all Windows 7 installations. It seemed so weird that it worked on 1 installation and failed on another seemingly identical Windows 7 installation. The difference was that one had text size 125% as default, but set to 100%.Anonymous
July 01, 2014
Hi Torsten It all depends on the screen size and resolution that the Windows software detects on the original installation. So even if the DPI is changed back to 100% afterwards, the bitmap fonts are left at 125% until the registry is changed (and the system rebooted). DavidAnonymous
August 30, 2014
Works as advertisedAnonymous
August 30, 2014
Hi Deepstar Glad to assist. DavidAnonymous
August 09, 2015
In case people are wondering, this (at leats for me) works for Windows 10 as well.Anonymous
August 20, 2015
Hi Glenn Thanks for the feedback. DavidAnonymous
June 15, 2016
i need to know how to change font size plz but that was helpfull- Anonymous
June 16, 2016
Hi AnthonyBitmap 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
- Anonymous
Anonymous
June 20, 2016
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!Anonymous
June 21, 2016
Hi FredrikGlad I was able to help you.David- Anonymous
July 19, 2016
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!- Anonymous
July 20, 2016
Hi RobertYou 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 (2560x1440) and 150% DPI on my Surface Book screen (3000x2000) and this works well for me.David- Anonymous
July 20, 2016
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!- Anonymous
July 20, 2016
Hi RobertI 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
- Anonymous
- Anonymous
- Anonymous
- Anonymous
Anonymous
July 20, 2016
David - let me have another look to see what I am missing. Thk you for the responses.Anonymous
July 22, 2016
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. TxAnonymous
October 15, 2016
my default is 100, i want 125!!!!! tried everything , want 125 font, won't light up the apply button- Anonymous
October 17, 2016
Hi JoannAre 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
- Anonymous
Anonymous
October 18, 2016
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.Anonymous
November 02, 2016
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).Anonymous
November 07, 2016
This works an absolute treat on Windows 7 64 bit. Great post!- Anonymous
November 07, 2016
Hi DanGlad this could help you.Also have a look at the following post to see how to turn on Bitmap Scalinghttps://dynamicsgpland.blogspot.com.au/2016/09/fix-dynamics-gp-scaling-and-font-size.htmlBoth Bitmap Font Sizing and Bitmap Scaling have been added to GP Power Tools (http://WinthropDC/GPPT).David
- Anonymous
Anonymous
November 18, 2016
I had this problem since years with Bentley Software. Now my problem is solved! Great post!- Anonymous
November 19, 2016
The comment has been removed
- Anonymous
Anonymous
February 15, 2017
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!