• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Loading a TTF font
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Loading a TTF font


  • Subject: Re: Loading a TTF font
  • From: John Stiles <email@hidden>
  • Date: Thu, 9 Oct 2003 11:06:37 -0700

Thanks to everyone's help, I have managed to get this working! I am puzzled by one small thing, but other than that, it's going great.

The good stuff: I am able to make the following calls and get a font loaded.
- ATSFontActivateFromMemory -> block of memory in, font container out
- ATSFontFindFromContainer -> font container in, array of font refs out

(At this point I just take the first font ref in the array; I don't think there are any cases where our content guys will use a container with multiple fonts/styles in it. Our needs aren't that complicated, fortunately.)

- ATSFontGetName -> font ref in, font name out
- +NSFont fontWithName:size: -> font name in, NSFont out

Unfortunately, on some fonts, the CFString returned by ATSFontGetName is NULL! (Fonts which worked: MSMincho.ttc, FrizQuadrata.ttf. A font which gave a NULL name: Papyrus.dfont)

Why would this happen? Is it something to do with dfonts versus ttf's? Since we aren't going to be using dfonts anyway (we need Win98-compatible fonts), this isn't a big deal for me, but I want to make sure that's what the problem actually is.

Really, it would be more convenient if I could pass an ATSFontRef directly to NSFont and skip the name-grabbing step, but I doubt that's an option.


On Wednesday, October 8, 2003, at 08:01 PM, John Stiles wrote:

For legal reasons, I probably cannot install the fonts. (We have a license to use them in our software, but not to give them to end-users.) I'm pretty sure I'm safe putting them in a temporary directory, but putting them in a semi-permanent place on the user's hard drive is probably a recipe for trouble.

Can I use Carbon code to activate the fonts, and have NSFont "see" the fonts? And TTFs will work?

(FWIW I have no aversions to Carbon at all. I am not really a language/API zealot. I just want stuff to work with a minimum of headache. Usually that means Cocoa, but not always.)


On Wednesday, October 8, 2003, at 06:42 PM, Andrew Thompson wrote:


On Wednesday, Oct 8, 2003, at 20:23 America/New_York, Aki Inoue wrote:

John,

The ATS framework, our font management layer, can work with Windows fonts.
You just have to install them in one of the folders for fonts.

Aki

On 2003/10/08, at 16:03, John Stiles wrote:

I'm working on a program which needs to load a font from a Windows-origin ".TTF" or ".TTC" font, and turn it into an NSFont that would be suitable for rendering text as bezier paths (in my case, I use -NSBezierPath >>>> appendBezierPathWithGlyphs:count:inFont:).

Is this easily doable with Cocoa? Or am I looking at a painful process?

If necessary I could preprocess the font to be more Mac-friendly in some way, but that means wasting a few hundred K of disk space on our CD for two copies of one font. In the worst case (the Japanese version), that could mean up to 10MB gone. Not really thrilled about that option :)

Thanks for any suggestions :)

If you don't want to install the fonts, you can activate arbitrary fonts using these APIs:

http://developer.apple.com/documentation/Carbon/Reference/ATS/ atsfontsref_Reference/function_group_1.html#//apple_ref/doc/uid/ TP30000037/Activating_and_Deactivating_Fonts

Its definately Carbon not Cocoa (well, actually I think its technically part of Core Foundation), but Cocoa can call Carbon code with no problems.
As to how hard it is to get right, I don't know...

A: Top replies
Q: What's the most annoying thing you can do in an email?

(sorry Aki, couldn't resist ;)

AndyT (lordpixel - the cat who walks through walls)
A little bigger on the inside

(see you later space cowboy ...)
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: Loading a TTF font
      • From: Aki Inoue <email@hidden>
References: 
 >Re: Loading a TTF font (From: John Stiles <email@hidden>)

  • Prev by Date: Re: Drag out
  • Next by Date: Re: Loading an NSView instance from a Nib in a bundle
  • Previous by thread: Re: Loading a TTF font
  • Next by thread: Re: Loading a TTF font
  • Index(es):
    • Date
    • Thread