Introduction
Removing unnecessary or damaged fonts will reduce the time it takes for Windows to boot and make your system
more stable. When Printer's Apprentice uninstalls a font, it removes the font from memory, the Registry and will
optionally copy or move the font to another drive or folder.
Uninstalling Fonts
To start uninstalling fonts, use the Installed Fonts tab to select the fonts you want to remove. You can select
one or more fonts using the checkbox next to each font name in the list.
Then select Uninstall Fonts from the File menu. You can also click the Uninstall Fonts button on the Toolbar.
The Uninstall Fonts dialog box will open and list the fonts to be removed.
The Uninstall Fonts dialog has two tabs. The "Fonts To Uninstall" tab lists
the selected font names, the source font file, the file size and the
entry that will be added to the Windows Registry. (The Fonts section of
the Registry tells which fonts should be installed the next time Windows
is restarted.) A summary of the uninstall operation is also displayed
below the font list.
The Options tab lets you specify where the fonts will be copied to
after they are are uninstalled. Each of the settings is described below.
Delete font files - Printer's Apprentice will delete the the font
files after the fonts are uninstalled.
Copy font files to a folder - Printer's Apprentice will copy the fonts
to another folder after the fonts are uninstalled. You can select the destination by
clicking the Folder... button.
Move font files to a folder - Printer's Apprentice will move the fonts
to another folder after the fonts are uninstalled. You can select the destination by
clicking the Folder... button.
Leave fonts where they are - Printer's Apprentice not do anything with with
the font files after they are uninstalled.
The Options tab also has checkboxes to "Create a log file" and "Show
log file when finished". If Printer's Apprentice is having difficulty
removing fonts, these may be used to help diagnose the problem. When
the "Create log file" option is enabled, Printer's Apprentice will
create a very detailed list of the actions taken to uninstall the fonts.
This can then be sent to the software developer for analysis. The log
files are stored in the c:\documents and settings\username\Application
Data\Printer's Apprentice\log folder. You can browse this folder by
selecting Printer's Apprentice Log Folder from the Help menu.
When you are satisfied with the options, click the Uninstall Fonts button. Printer's Apprentice will copy
the font files if necessary and uninstall the fonts.
Behind the Scenes
After you click the Uninstall Fonts button, Printer's Apprentice runs
through the steps needed to remove the font from Windows and other
applications. The steps are essentially the same as those performed by
the Windows Control Panel Fonts tool.
Here is what happens after you click the Uninstall Fonts buttons.
- The font file is removed from Windows
through a call to the Win32 API RemoveFontResource() function.
Additionally, a WM_FONTCHANGE message is sent to other open
applications to let them know that a font change occurred.
- Printer's Apprentice removes the font to the Windows Registry.
The Registry entries tell Windows what fonts should be installed the
next time Windows boots up. The font lists are stored in the
following sections:
TrueType and OpenType Fonts
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
(shown below)
Type One Fonts
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Type 1 Installer\Type 1 Fonts
Each font is stored in a separate key. The "name" portion of the key
stores the font name and the data portion stores the font file name.
If the font file is located in the c:\windows\fonts folder, then the
filename is stored without a path. If the font file is located in
another folder, then the filename will contain the full path to the
font file.
- And finally, if either of the Copy or Move options are selected, then
Printer's Apprentice copies the file to the destination folder and deletes the original if needed.
There is, of course, code in place to confirm file overwrites, check
for copy failure, etc.