views:

221

answers:

2

I'm using the FreeType2 library in an iPhone project, and I'm trying to simply load a TTF file from the system, if possible.

FT_Library  library;
FT_Face face;
int error;


error = FT_Init_FreeType( &library );

if ( error == 0 )
     printf("Initialized FreeType2\r\n");   /* Prints */

error = FT_New_Face(library, "/System/Library/Fonts/Helvetica.ttf", 0, &face);

if ( error ==  FT_Err_Cannot_Open_Resource )
    printf("Font not found\r\n");         /* Prints */

That error seems to be for file not found. Is /System/Library/Fonts not the location of the fonts? Or, do iPhone apps simply not have any read access at all to that directory.

Thanks!

+2  A: 

To find the fonts installed on your device, load the font manifest (a plist):

NSDictionary *cgFonts = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/Fonts/CGFontCache.plist"];

Once you parse it, you'll find the entry for your font:

Helvetica = "/System/Library/Fonts/Cache/Helvetica.ttf";
Zack
That isn't found either
Kyle
http://modmyi.com/wiki/index.php/IPhone_FontsNot sure how accurate this page is, but it's what I had used as a reference.
Kyle
You can always get the available fonts using the code listed in this article: http://excitabyte.wordpress.com/2010/03/24/the-font-family-names-available-on-iphone-os/
Zack
+1  A: 

They're either in /System/Library/Fonts/ or /System/Library/Fonts/Cache. However, I suspect that you may not have the required permissions to access those directories.

macatomy