OSに登録されていないフォントを使う

メモ:  Category:vb

友人からいただいたネタです。

OSに登録されていないフォントをアプリケーションで使用したい場合、PrivateFontCollectionというクラスを使うことでアプリケーション用に用意したフォントを使うことが出来ます。

フォントファイルを用意し、AddFontFileメソッドでコレクションにフォントを追加します。追加したフォントは、Familiesプロパティで取得します。

実装例

Private objPrivateFonts As New PrivateFontCollection

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    ' パスを指定してフォントを追加する
    Me.objPrivateFonts.AddFontFile("ipagui.ttf")
    ' 使用するフォントを設定する
    Me.Label1.Font = New Font(objPrivateFonts.Families(0), 11)

End Sub

他にもリソースファイル等からフォントファイルをメモリに展開し、AddMemoryFontメソッドを使用してメモリに格納されているフォントをPrivateFontCollectionに追加して使用することも出来ます。

bluenote by BBB