Freigeben über


Textmetriken

Um Ihr Layout, die Auswahl benutzerdefinierter Schriftarten und andere metrikintensive Vorgänge ab Windows 8 zu unterstützen, verfügt DirectWrite über eine Reihe neuer APIs, um alle Informationen zu Schriftarten auszudrücken, die Sie möglicherweise benötigen, um Rich-Text-Apps zu entwickeln.

PANOSE

PANOSE ist ein visuelles Klassifizierungssystem zum Identifizieren von Schriftarten. Die PANOSE-Klassifizierung enthält Informationen zur Familie, Serifenstil, Gewicht, Proportion, Kontrast, Strich, Armstil, X-Höhe usw. Diese Informationen beschreiben den visuellen Stil der Schriftart. Diese Informationen sind wichtig, da Schriftarten mit ähnlichen PANOSE-Werten ähnlich aussehen. Dies ist sehr nützlich in Situationen, in denen eine Schriftart nicht verfügbar ist und die App auf eine verfügbare Schriftart zurückgreifen muss. Wenn Sie PANOSE-Werte für Schriftarten vergleichen, können Sie eine Schriftart auswählen, die visuell der ursprünglichen Schriftart ähnelt.

Um auf die PANOSE-Informationen für eine Schriftart zuzugreifen, verwenden Sie die GetPanose-Methode für die Schnittstellen IDWriteFont1 und IDWriteFontFace1 . Diese Methode gibt eine DWRITE_PANOSE-Enumeration zurück, die alle PANOSE-Informationen für diese Schriftart enthält.

Zusätzliche Metriken

Ab Windows 8 unterstützt die DirectWrite-API auch eine Reihe neuer Metriken, um nützliche Informationen zu den Schriftarten für Ihre App auszudrücken. Diese neuen Metriken enthalten diese Informationen.

  • Linke, rechte, obere und untere Glyphen-Begrenzungsrahmenmetriken.
  • X- und Y-Positionierung für hoch- und tiefgestellte Elemente.
  • X- und Y-Skalierungsinformationen für hoch- und tiefgestellte Elemente.
  • Gibt an, ob die Schriftart typografische Metriken aufweist oder nicht.

Diese Informationen sind über die neue GetMetrics-Methode auf den Schnittstellen IDWriteFontFace1 und IDWriteFont1 verfügbar. Diese Methode gibt eine DWRITE_FONT_METRICS1-Struktur zurück, die alle diese Informationen enthält.

Caret-Metriken

Zum Erstellen von Textbearbeitungs-Apps benötigen Sie Zugriff auf Informationen zum Zeichnen des Carets, das durch den Text navigiert. Ab Windows 8 stellt DirectWrite die GetCaretMetrics-Methode für die Schnittstellen IDWriteFontFace1 und IDWriteFont1 für dieses Szenario bereit. GetCaretMetrics gibt eine DWRITE_CARET_METRICS-Enumeration zurück, die Informationen über die Steigung und den Offset für das Caret entlang der Baseline enthält.

Diese Informationen sind besonders hilfreich, wenn Sie in der Lage sein möchten, ihre Pflegeneigung entsprechend kursiv zu gestalten.

Monospaced Discoverability

Apps, die es Ihren Benutzern ermöglichen, Computercode zu schreiben, verwenden häufig monospaced Fonts anstelle herkömmlicher Schriftarten. So können Sie mehr Kontrolle über die Schriftartauswahl in Apps haben, die sich auf die Entwicklung beziehen, DirectWrite gibt an, ob eine Schriftart über die API monospaced ist oder nicht. Die IsMonospacedFont-Methode für die IDWriteFontFace1-Schnittstelle gibt einen Booleschen Wert zurück, der angibt, ob die Schriftart monospaced ist.

Schriftnamenabgleich

Rich-Text-Apps wie PDF-Leser müssen Schriftarten in ihren Inhalten mit Schriftarten auf dem System abgleichen können, und benötigen Zugriff auf die vollständigen Namen von Schriftarten in mehreren Formaten. Damit Sie Schriftarten besser abgleichen können, enthält DirectWrite eine Enumeration, die vollständige Benennungsinformationen zu einer Schriftart in vielen Formaten ausdrückt.

Sie verwenden die DWRITE_INFORMATIONAL_STRING_ID-Enumeration , um den vollständigen Namen, PostScript-Namen und PostScript-CID-Namen einer beliebigen Schriftart im System abzurufen. Diese Informationen sind nützlich, wenn Sie Schriftarten in Ihrer App mit den entsprechenden Schriftarten im lokalen System abgleichen müssen.

Glyphenfortschritte

Die GetGlyphAdvances-Methode für die Schnittstellen IDWriteFontFace1 und IDWriteFont1 übernimmt die Glyphenanzahl und die Indizes, zu denen Sie Fortschrittsinformationen benötigen, und gibt dann die Fortschritte für die betreffenden Glyphen zurück.

Unicode-Bereiche

Apps, die ihre eigene Schriftartauswahl verarbeiten möchten, benötigen Zugriff auf die Unicode-Bereiche, die von der Schriftart unterstützt werden. Wenn ein Unicode-Codepoint von der Schriftart nicht unterstützt wird, kann die App eine geeignete Schriftart auswählen, die diese Glyphe enthält. Ohne diese Informationen verwendet die App möglicherweise eine Schriftart, die nicht alle Glyphen enthält, die zum Anzeigen der vorhandenen Informationen erforderlich sind.

Die GetUnicodeRanges-Methode für die Schnittstellen IDWriteFontFace1 und IDWriteFont1 übernimmt die maximale Anzahl von Bereichen, die vom Client übergeben wurden, und gibt die tatsächlich von der Schriftart unterstützten Bereiche zurück.

EUDC-Schriftartsammlung

Verwenden Sie die GetEudcFontCollection-Methode für die IDWriteFactory1-Schnittstelle , um auf die EUDC-Schriftartsammlung zuzugreifen. Diese Methode funktioniert auf die gleiche Weise wie GetSystemFontCollection, gibt aber stattdessen einen Zeiger auf eine EUDC-Schriftartensammlung zurück.