文字計量

為了協助您的版面配置、自訂字型選取和其他計量密集作業,從Windows 8開始,DirectWrite有一些新的 API 來表達您可能需要開發 RTF 應用程式之字型的所有相關資訊。

PANOSE

PANOSE 是用來識別字樣的視覺分類系統。 PANOSE 分類包含系列、serif 樣式、粗細、比例、對比、筆劃、arm 樣式、X 高度等資訊。此資訊描述字型的視覺樣式。 這項資訊很重要,因為具有類似 PANOSE 值的字型看起來很類似。 在無法使用字型且應用程式需要回復為可用的字型的情況下,這非常有用。 比較字型的 PANOSE 值可讓您選擇與原始字型類似的字型。

若要存取字型的 PANOSE 資訊,請在IDWriteFont1IDWriteFontFace1介面上使用GetPanose方法。 這個方法會傳回 DWRITE_PANOSE 列舉,其中包含該字型的所有 PANOSE 資訊。

其他計量

從Windows 8開始,DirectWrite API 也支援許多新的計量,以表達您應用程式字型的實用資訊。 這些新的計量包含這項資訊。

  • 左、右、上和下角圖像周框方塊計量。
  • 上標和下標專案的 X 和 Y 位置。
  • 上標和下標專案的 X 和 Y 縮放資訊。
  • 字型是否有印刷樣式計量。

這項資訊可透過IDWriteFontFace1IDWriteFont1介面上的新GetMetrics方法取得。 這個方法會傳回包含所有資訊的 DWRITE_FONT_METRICS1 結構。

插入號計量

若要建立文字編輯應用程式,您需要存取如何繪製流覽文字之插入號的相關資訊。 從Windows 8開始,DirectWrite在此案例的IDWriteFontFace1IDWriteFont1介面上提供GetCaretMetrics方法。 GetCaretMetrics 會傳回 DWRITE_CARET_METRICS 列舉,其中包含基準上插入號的斜率和位移相關資訊。

如果您想要能夠適當地使用斜體文字的插入號斜率,這項資訊特別有用。

單空間探索性

允許使用者撰寫電腦程式代碼的應用程式通常會使用單空格字型來取代較傳統的字型。 因此,您可以在與開發相關的應用程式中,更充分掌控字型選取,DirectWrite表示字型是否透過 API 空白。 IDWriteFontFace1介面上的IsMonospacedFont方法會傳回 Boolean,指出字型是否空白。

字型名稱比對

PDF 讀取器之類的 RTF 應用程式必須能夠將其內容中的字型與系統上的字型相符,需要存取多種格式的完整字型名稱。 因此,您可以更符合字型,DirectWrite包含列舉,以許多格式表達字型的完整命名資訊。

您可以使用 DWRITE_INFORMATIONAL_STRING_ID 列舉來取得系統上任何字型的完整名稱、PostScript 名稱和 PostScript CID 名稱。 當您需要比對應用程式中的字型與本機系統上的適當字型時,這項資訊非常有用。

字元進階

IDWriteFontFace1IDWriteFont1介面上的GetGlyphAdvances方法會採用您需要進階資訊的字元計數和索引,然後傳回有問題的字元進階。

Unicode 範圍

想要處理自己字型選取範圍的應用程式需要存取字型所支援的 Unicode 範圍。 如此一來,如果字型不支援 Unicode 字碼點,應用程式可以選擇包含該字元的適當字型。 如果沒有這項資訊,應用程式可能會使用不包含顯示資訊所需之所有字元的字型。

IDWriteFontFace1IDWriteFont1介面上的GetUnicodeRanges方法會接受從用戶端傳入的最大範圍數目,並傳回字型所支援的實際範圍。

EUDC 字型集合

IDWriteFactory1介面上使用GetEudcFontCollection方法來存取 EUDC 字型集合。 這個方法的運作方式與 GetSystemFontCollection相同,但會改為傳回 EUDC 字型集合的指標。