FontSync addresses one of the most critical font management issues encountered in publishing—output errors caused by font mismatches. Font mismatches occur when the fonts used by a content creator are not available or do not work properly on the device that is used for printing. Some of the most common reasons for font mismatches include:
Improper rendering. Many high-end printers cannot render TrueType fonts properly.
Different font metrics. TrueType fonts can have the same name (such as, “Times”) but a different version (TrueType and Type 1) with different font metrics. If the font metrics are different, there is a risk of reflow.
Modified or corrupted fonts. Even if both the content creator and the prepress company use the same type technology, the fonts may not contain the same data. Fonts can be modified by users or become corrupted. Metrics, kerning, and appearance can differ, causing reflow.
Font substitution. If a LaserWriter driver cannot access the requested font (for example, if the limit on the number of open files in Mac OS is exceeded) it silently substitutes a bitmap version.
FontSync Software
FontSync Font References
FontSync Profiles
FontSync is part of the Carbon Library and is designed to run on Mac OS 9.0 or later. The software suite includes the following:
the FontSync Shared Library, which implements the API
a faceless background application that implements scripting support
two AppleScript scripts: one that creates a font profile and one that compares a profile either to another profile or the active fonts
A FontSync font reference is a compact description of a font that can be use to compare fonts quickly. The data stored in a FontSync font reference is algorithmically derived from a font’s data. The FontSync font reference contains only a portion of the data contained in the actual font, such as the QuickDraw font family name, the ATSUI font name, the type of font, the font version, a checksum of the data, and information from the font name table.
FontSync font references can be created only for fonts that can be interpreted by Open Font Architecture and can be represented as fonts for which there is a scaler. Once created, a FontSync font reference is stored in a document that can be sent over a network and compared with fonts on a host system.
Because FontSync font references contain only a portion of the data contained in the actual font, there is a chance that FontSync is wrong when it does a font comparison. However, it is more likely for FontSync to report a mismatch when two fonts actually match than to report a match when two fonts actually do not match. This is because FontSync is designed to reject a match if it detects any difference between font data. You can have a high degree of confidence that fonts match when FontSync reports they match.
A number of conditions can cause FontSync to report a mismatch when two fonts actually match. For example, when glyphs are renumbered in a font, they trigger a mismatch, even though the font has not changed. Matching fonts of different technologies is a particular case of this, as FontSync does not report fonts of different technologies as a match.
Note: Because Apple Type Services synthesizes some of the tables associated with a font, you can’t reliably compare FontSync references unless the references are created using the same operating system (Mac OS X or Mac OS 9). However, if you compare only those tables known not to be synthesized, then you can compare a FontSync reference created in Mac OS X with one created in Mac OS 9.
A font profile is a file that contains a collection of FontSync font references. It defines the set of fonts on the user’s system at the time the profile was created. You do not need to use a font profile to iterate, identify, and match fonts. However, font profiles may make your work easier. For example, your application can use font profiles as a filter to build a menu containing only the fonts a particular prepress company supports. Print shops can also generate font profiles and give them to users to control the set of accessible fonts.
FontSync moderates access to the font profile file. In most cases, FontSync allows read-access by anyone or write-access by a specific user, but FontSync does not allow both read and write access at the same time. The Mac OS File Manager does not support this behavior on local volumes, so it may still be possible for someone to write to a profile file while others have the file open for reading. You should treat FontSync profiles similar to most document files where the caller is responsible for making sure that write access is not granted at the same time the file is opened for reading. If a user attempts to modify a profile, your application should make a copy of the file, modify the copy, and swap file names when the modifications are complete. This approach has the benefit of allowing you to revert to the original font profile should an error invalidate the modified font profile.
© 2003 Apple Computer, Inc. All Rights Reserved. (Last updated: 2003-02-12)