Archive for May 29th, 2009

29
May

Custom Fonts

So we have an occasion to be interested in embedding custom fonts in an iPhone application. Specifically, this DS-Digital font. It turns out that custom fonts are not quite as easy as one would hope to work with in an iPhone application. As a matter of fact, if you look around the ‘net, you’ll find opinions ranging from “it would be really hard” to “it’s not actually possible”, with people doing things like rendering fonts into UIImages to do that kind of thing since they can’t sort it out from the documentation. Yoiks! We’re looking for something rather more transparent than that! (Although we do note that the tool linked there would be quite handy indeed for using custom fonts in actual OpenGL work, like games … as would that author’s texture creator here.)

But fear not — although rather (unduly, in fact, someone less gracious than ourselves might observe…) challenging, it is, indeed, perfectly possible to use honest-to-goodness embedded CGFonts for text rendering in your iPhone app! To skip over lightly all the pitfalls, simply download this fine, fine piece of work which sorts out all the issues with a FontManager class to load the fonts and a FontLabel class to display them, with a CGFontRef-savviness category on NSString to help out … and:

fontsuccess

Sweet! The only trivial bit of trickery left to use it exactly as provided is to make sure that your font file name matches the font contained therein. Which the DOS-friendly filename from the above link didn’t, of course. But that is trivially corrected by double-clicking it in the Finder and reading off the name it displays.

So now that you know how, let’s round up sources of free fonts for your embedding joy, shall we? We focus on free sources here not because we’re cheap but because common license terms of commercial fonts are going to not be happy in the slightest with redistribution through application embedding. So unless you’re absolutely 100% sure that the IP lawyersharks aren’t going to hunt you down and feed on your entrails for unauthorized distribution of commercial fonts that you have bought, it behooves you greatly to only use fonts with freely redistributable license terms. Which we believe that you’ll find in abundance — or at least here and there — at these sites:

Any other sources of license-unencumbered embeddable fonts you care to recommend, Dear Readers?