テキスト メトリック
Windows 8以降、レイアウト、カスタム フォントの選択、およびその他のメトリックを集中的に使用する操作を支援するために、DirectWriteには、リッチ テキスト アプリの開発に必要なフォントに関するすべての情報を表現するための新しい API が多数用意されています。
PANOSE
PANOSE は、書体を識別するための視覚的分類システムです。 PANOSE 分類には、ファミリ、セリフ スタイル、体重、比率、コントラスト、ストローク、腕のスタイル、X-height などの情報が含まれます。この情報では、フォントの表示スタイルについて説明します。 PANOSE の値が似ているフォントは似ているため、この情報は重要です。 これは、フォントが使用できない場合や、アプリが使用可能なフォントにフォールバックする必要がある場合に非常に便利です。 PANOSE の値をフォントと比較すると、元のフォントと視覚的に似たフォントを選択できます。
フォントの PANOSE 情報にアクセスするには、IDWriteFont1 インターフェイスと IDWriteFontFace1 インターフェイスで GetPanose メソッドを使用します。 このメソッドは、そのフォントのすべての PANOSE 情報を含む DWRITE_PANOSE 列挙体を返します。
追加のメトリック
Windows 8以降、DirectWrite API では、フォントに関する有用な情報をアプリに表現するために、多くの新しいメトリックもサポートされています。 これらの新しいメトリックには、この情報が含まれます。
- 左、右、上、および下のグリフ境界ボックスのメトリック。
- 上付きおよび下付き文字の要素の X と Y の配置。
- 上付き要素と下付き文字要素の X および Y スケーリング情報。
- フォントに文字体裁メトリックがあるかどうか。
この情報はすべて、IDWriteFontFace1 インターフェイスと IDWriteFont1 インターフェイスの新しい GetMetrics メソッドを通じて使用できます。 このメソッドは、この情報をすべて含む DWRITE_FONT_METRICS1 構造体を返します。
キャレット メトリック
テキスト編集アプリを作成するには、テキスト内を移動するキャレットを描画する方法に関する情報にアクセスする必要があります。 Windows 8以降、DirectWriteは、このシナリオの IDWriteFontFace1 インターフェイスと IDWriteFont1 インターフェイスで GetCaretMetrics メソッドを提供します。 GetCaretMetrics は 、ベースラインに沿ったキャレットの傾きとオフセットに関する情報を含む DWRITE_CARET_METRICS 列挙体を返します。
この情報は、斜体のテキストでキャレットの傾きを適切に設定できるようにする場合に特に役立ちます。
モノスペース検出可能性
ユーザーがコンピューター コードを記述できるようにするアプリでは、多くの場合、従来のフォントの代わりにモノスペース フォントが使用されます。 そのため、開発に関連するアプリでフォントの選択をより詳細に制御DirectWrite、フォントが API を通じてモノスペース化されているかどうかを表します。 IDWriteFontFace1 インターフェイスの IsMonospacedFont メソッドは、フォントがモノスペースかどうかを示すブール値を返します。
フォント名の一致
PDF リーダーなどのリッチ テキスト アプリは、コンテンツ内のフォントをシステム上のフォントと一致させる必要があり、複数の形式のフォントのフル ネームにアクセスする必要があります。 そのため、フォントをより適切に一致させることができます。DirectWriteには、フォントに関する完全な名前付け情報を多くの形式で表す列挙体が含まれています。
DWRITE_INFORMATIONAL_STRING_ID列挙を使用して、システム上の任意のフォントの完全な名前、PostScript 名、および PostScript CID 名を取得します。 この情報は、アプリのフォントをローカル システム上の適切なフォントと一致させる必要がある場合に便利です。
グリフの進歩
IDWriteFontFace1 インターフェイスと IDWriteFont1 インターフェイスの GetGlyphAdvances メソッドは、必要なグリフ数とインデックスを受け取り、必要なグリフの進歩を返します。
Unicode 範囲
独自のフォント選択を処理するアプリでは、フォントでサポートされている Unicode 範囲にアクセスする必要があります。 これにより、Unicode コードポイントがフォントでサポートされていない場合、アプリはそのグリフを含む適切なフォントを選択できます。 この情報がないと、アプリでは、情報を表示するために必要なすべてのグリフが含まれていないフォントを使用できます。
IDWriteFontFace1 インターフェイスと IDWriteFont1 インターフェイスの GetUnicodeRanges メソッドは、クライアントから渡された範囲の最大数を受け取り、フォントでサポートされている実際の範囲を返します。
EUDC フォント コレクション
EUDC フォント コレクションにアクセスするには、IDWriteFactory1 インターフェイスで GetEudcFontCollection メソッドを使用します。 このメソッドは GetSystemFontCollection と同じように動作しますが、代わりに EUDC フォント コレクションへのポインターを返します。