Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Location of the fonts on the iPhone?

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!

like image 956
Kalen Avatar asked Mar 31 '10 22:03

Kalen


2 Answers

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";
like image 61
Zack Avatar answered Oct 24 '22 01:10

Zack


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.

like image 2
indragie Avatar answered Oct 24 '22 01:10

indragie