How do I convert a suitcase font?
Font Suitcases can potentially hold 2 different kinds of fonts: bitmap fonts and TrueType fonts. Normally, font suitcases that hold bitmap font data are only one half of the font; to be usable you need to have the additional PostScript Outline font files (these will have an LWFN
icon).
Otherwise, the font suitcase can represent a TrueType font, which compared to a "PostScript Type 1 Font Suitcase", is truly self-contained.
I'm not aware of command-line font converters for the Mac. The only type of conversion I could imagine using command line tools would be converting from a resource-fork-based Font Suitcase to a Datafork TrueType font (.dfont), and possibly from a Mac TrueType to a Windows TrueType font (basically you'd need to extract the 'sfnt'
resource entries).
To try to figure out if the Mac Font Suitcase is a TrueType font, you can use the following command:
grep -c sfnt /Library/Fonts/BankGothic/..namedfork/rsrc
What this does is return the number of times 'sfnt'
is found in the resource fork of the file in question. If this returns 0, the file is most likely not a TrueType font.
Note that by default, terminal command will only act on the data fork part of files. For example:
ls -la /Library/Fonts/BankGothic
-rw-rw-r--@ 1 root admin 0 Mar 7 2007 /Library/Fonts/BankGothic
This shows that the file is empty (has a file size of 0). To specifically target the resource fork, you append /..namedfork/rsrc
to the filename as in the following example:
ls -la /Library/Fonts/BankGothic/..namedfork/rsrc
-rw-rw-r-- 1 root admin 346937 Mar 7 2007 /Library/Fonts/BankGothic/..namedfork/rsrc
EDIT: If it is a Mac TrueType font, I can convert it to one or more Windows TrueType fonts (.ttf) for you. (For this particular type of conversion, there's no need to use font software; a simple Mac resource editor (and knowledge of this process) should be sufficient. If I do convert it in this manner, I'll provide screenshots of what I'm doing for the record).
EDIT 2: See my answer on StackOverflow for "Using OS 9 resource fork fonts with CSS" for a tool I wrote that would allow drag and drop extracting of sfnt
resource entries to individual ttf font files.
Font Suitcases can also contain PostScript Type 1 outline fonts. The current highest voted answer above does not mention this. And the solution proposed there does not work for these types of suitcases.
Here is a screenshot of what a Type 1 suitcase looks like in OS X:
The steps for converting these to OpenType OTF are:
- Download and install FontForge as per http://fontforge.github.io/en-US/downloads/mac/.
- With each suitcase file, you will find one or more font data files that are part of the suitcase set — usually with a similar name; these are the files you need to open. For example, the suitcase might be named "Gadzooks Family" and Finder will show its type as "font suitcase"; and with it you might see files called GadzooIta and GadzooMed (the italic and medium styles) which have the Finder type of "PostScript® Type 1 outline font". There is no standard naming convention, unfortunately, but it should be pretty obvious.
- Open one of the PostScript outline font files. FontForge will probably not show the file, since typically they do not have a file extension. Set the file filter in the Open dialog to show all files. This should allow you to open the font. If it worked, you should see a grid of all the font characters.
- Import the kerning data. Go to File > Merge Feature Info… in the menu, and choose the file that is the font suitcase. You should then be prompted with a list of data sources within the suitcase, and you need to choose the corresponding font data from the list. Unfortunately this is more art than science, but the font data should have a name similar to the name of the font style you are editing.
- To verify that the kerning data was imported, choose Metrics > New Metrics Window from the menu, and then in the bar at the top type a couple characters that should have a kerning setting (such as “AV” or “WA” — these are likely suspects, but every font is different), and you should see a value in the Kern box below (for example, maybe "–20").
- Save if you want, using FontForge native .sfd format.
- Choose the File > Generate Fonts… menu command to export the font in the format desired. I got a bunch of warnings when I did this, but it still worked.
*When using this method, I found that a few kerning pairs were lost. I don't know why, but it was usually the same several kerning pairs in each font that went missing. Out of 30-100 kerning pairs per font, maybe 3-5 would be missing. But these can be restored manually. Using the commercial font management app FontExplorerX Pro, for example, you can see all the kerning pairs in a font and their values. You can then manually enter any missing values in FontForge's metrics window before exporting the font.