Installing and Using an Embedded Font
You must separate an embedded font from the containing document and install it
in the user's operating system before Windows can use it. Although the exact
procedure for separating the font from the document depends on the method used
to embed it, your application should always perform these steps:
- Resolve name conflicts before installing the font.
- Write the font data to a file, decoding read-only fonts as necessary.
- Use the CreateScalableFontResource function to create a font resource file for the unembedded font.
In Windows, only a TrueType font can be embedded.
Your application should avoid installing a font with the same name as a font
that is already on the system. To determine whether there are duplicate style
names, an application can compare the information returned by
EnumFontFamilies against the family name and style name stored with the embedded font.
Read-Write Permission
Embedded fonts that have read-write permission (and that therefore can be
permanently installed on the user's system) should be written to a file that has
the .TTF filename extension.
Most applications put the files for embedded fonts that have read-write
permission into either the SYSTEM subdirectory of the user's Windows directory or
into the application's working directory. Files for read-only embedded fonts are
typically put into a temporary directory.
Before installing an embedded font, you must use the
CreateScalableFontResource function to create a font resource file. Because Windows cannot directly
interpret the native TrueType font file format, it requires a file that mimics the
standard .FON file (called a .FOT file) to make internal bookkeeping and
enumeration easier. The
CreateScalableFontResource function produces a .FOT file that points to the TrueType font file. Once
this .FOT file is produced, Windows applications can use TrueType fonts
transparently by using the
AddFontResource and
RemoveFontResource functions. You can also use the
CreateScalableFontResource function to install special fonts for logos, icons, and other graphics. Font
resource files for read-only fonts should use a different extension (for
example, .FOR) and should be hidden from other applications in the system by
specifying 1 for the first parameter of
CreateScalableFontResource.
Your application should offer users the option of permanently installing
embedded fonts that have read-write permission. To permanently install a font,
applications should concatenate the typeface and style names and then use the
WriteProfileString function to insert this string along with the .FOT file name in the [Fonts]
section of the WIN.INI file. A typical font entry in the [Fonts] section looks
like the following example.
Times New Roman Bold (TrueType)=TIMESBD.FOT
Read-Only Permission
Embedded fonts with read-only permission should not use the .TTF extension and
should avoid the .FOT and .FON extensions. A typical filename extension for
read-only embedded fonts is .TTR. Files for read-only embedded fonts must be
removed from the operating system and from both physical and logical memory as soon
as the containing document is closed, so their names do not need to be
meaningful except to the application.
If a document contains one or more read-only embedded fonts, the user must not
be permitted to edit the document. If the user is allowed to edit the document
in any way, your application must first strip away and delete the read-only
embedded fonts. As mentioned earlier, read-only embedded fonts must be removed
from the operating system and memory immediately when the document in which they
are bundled is closed.
To delete read-only embedded fonts, your application should follow these
steps:
- Call the RemoveFontResource function for each font to be deleted.
- Delete the font resource file for each font.
- Delete each TrueType font file for each font.
When an application creates a file for a read-only embedded font and specifies
1 for the first parameter of the
CreateScalableFontResource function, the
EnumFonts and
EnumFontFamilies functions will not enumerate this font. Hiding read-only embedded fonts in
this manner makes it unlikely that another application can use them, even though
Windows resources are theoretically available to all processes in Windows. The
RemoveFontResource function does not delete a font currently in use. If your application uses a
read-only embedded font installed by another application, it can be difficult
for the installing application to delete the font. In this case, your
application should delete the resource file and the TrueType font file when the user
closes the document containing the read-only fonts.
It is very important that applications delete the TrueType font file for
read-only embedded fonts. If the delete operation fails when the user closes the
document, the application should periodically attempt to delete the file as the
application runs, when it closes, and the next time it starts.
In some cases, an application is unable to delete a TrueType font file for a
read-only embedded font because of external events (such as a system failure).
There is no legal liability for events that are out of the control of the
application.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database