強火で進め

このブログではプログラム関連の記事を中心に書いてます。

アプリにフォントを同梱する方法

こちらに丁度自分が求めていた感じの質問と回答が有りました。

objective c - Embed font in a mac bundle - Stack Overflow
http://stackoverflow.com/questions/2444717/embed-font-in-a-mac-bundle

.plistファイルに ATSApplicationFontsPath を追加すれば良いみたいです。

ATSApplicationFontsPathは入力後、 Application fonts resource path に表示が変わるみたです。値には同梱するフォントファイルを置いているフォルダを指定します。

今回はこの様な構成にしたので値は Fonts になります。

同梱したフォントはライセンス的に同梱が問題無い以下の2つを使用しました。
ほとんどのフォントは同梱を禁止しています。同梱する場合はライセンスをしっかり確認の上行って下さい。

衡山毛筆フォント行書
http://musashi.or.tv/kouzangyousho.htm

M+ OUTLINE FONTS
http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index.html

実際に使用する部分のプログラムは通常のインストール済みのフォントを使用する場合と同じです。以下の様な記述で使えます。

- (IBAction)test1:(id)sender {
	NSFont* font = [NSFont fontWithName:@"KouzanBrushFontGyousyoOTF" size:70];
	[textField setFont:font];
	[textField setStringValue:@"謹賀新年"];
}

- (IBAction)test2:(id)sender {
	NSFont* font = [NSFont fontWithName:@"mplus-1m-thin" size:70];
	[textField setFont:font];
	[textField setStringValue:@"焼肉定食"];
}

※今回使用した衡山毛筆フォントの場合はフォント名は KouzanBrushFontGyousyoOTF 、M+フォントの今回使用した mplus-1m-thin.ttf ではフォント名は mplus-1m-thin です。


衡山毛筆フォントを使ってみた結果がこちら


M+フォントを使ってみた結果がこちら


サンプルプログラムはこちらからDL出来ます。

Carbon時代には以下のページに有る様に結構メンドクサイ記述が沢山必要だったみたいです。

How do I embed a font in an app? | Cocoabuilder
http://www.cocoabuilder.com/archive/cocoa/203330-how-do-embed-font-in-an-app.html