普通に使っている分には、然程ではありませんが、ちょっと、深みに足を突っ込むと、もう ... 。
これは、色々な、規格のものがあって、それ毎に、扱う仕組みが違うからです。
VB.Net の Form で、TTF や TTC のファイルを扱うだけなら、余り、頭を悩ませずに済むんですけれど。
システムに組み込まれたフォントは、色々なプロパティから操作が出来ます。
でも、フォントに魅せられて、色々なものを PC に突っ込む様になると、徐々に、OS 自体の挙動が重くなって来ます。
そこで、普通に考える対策は、特定のアプリにのみ、有効なフォントを割り当て、システムには組み込まないと言う対応ですね。
所謂、 PrivateFontCollection というアプリ専用のフォントの列挙をして、ここからアクセスします。
Dim privateFontCollection As New System.Drawing.Text.PrivateFontCollection()
Dim fontTemporaryDir As String = "C:¥temp"
privateFontCollection.AddFontFile(fontTemporaryDir + "¥" + "KonnaFontAttakke.ttf")
先にも、書きました様に、 TTF や TTC のファイル限定ですと、これで、用は足ります。
ところで、フォントファイルは、 TTF や TTC のファイルばかりではありません。
OTF というフォントも存在します。
都合の悪い事に、OTF は、TTF の後継で、仕様が拡張されていて、新しいフォントのファイル形態であるばかりか、
魅力的な フォント があったりします。
更に、OS ( Windows 7 等 ) では、すんなり、システムのフォントとして普通にインストール出来てしまったりします。
にも拘らず、先の PrivateFontCollection では、このファイルを指定すると、 ファイルが無い! と怒られてしまいます。
これは、msdn にも、記述があるのですが、 PrivateFontCollection.AddFontFile メソッド 解説の項目
PrivateFontCollection が、任意の OTF ファイルを扱う様になっていない為です。
Form は、GDI+ で描画されますが、GDI+ は TTF の時代の技術です。
このフォントは、 System.Drawing のクラスに属します。
これに、変わろうとしている技術と言えば、
Windoow の WPF に、なるのでしょうか。
WPF 即ち、 System.Windows.Media クラスでフォントを使う事により、OTF ファイルでも対応が可能になりそうです。
どこかで、最近の microsoft の UI は C# & WPF で記述されていると読んだ記憶があります。 不確かですが。
なるほど、WPF ね、と納得の私です。
だから、システムでフォントの登録時に、OTF ファイルでも、文字のサンプルが表示される訳なんですね。
うわぁ、避けて通っていた WPF に首を突っ込まないといけない様ですね。
WPF と言えば、C# が多い ってイメージです。
やはり、C# を覚えておくのが正解でしょうか。
これから、プログラムを と言う方は、C# & WPF をお勧めします。
0 件のコメント:
コメントを投稿