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