Verwenden des Schriftartenfallbacks

Hinweis

In diesem Thema gelten alle Hinweise zu ScriptShape gleichermaßen für ScriptShapeOpenType.

 

Ihre Anwendung muss während der Textanzeige schriftartenfallback verwenden, wenn einige Zeichen in einer Zeichenfolge in der Schriftart nicht unterstützt werden oder wenn die Anwendung ein komplexes Skript verwendet, das von der Schriftart nicht unterstützt wird. Die Anforderung für das Fallback von Schriftarten wird während des Layoutprozesses für Text erkannt, wenn die Anwendung die ScriptShape-Funktion aufruft. Informationen zur Textanzeige finden Sie unter Anzeigen von Text mit Uniscribe.

Ermitteln der Notwendigkeit eines Schriftartfallbacks für nicht unterstützte Zeichen

Wenn einige Der Zeichen in einer Zeichenfolge in einer angeforderten Schriftart nicht unterstützt werden, ist ein Anwendungsaufruf von ScriptShape erfolgreich. Die Anwendung muss jedoch den Glyphenausgabepuffer auf fehlende Glyphen überprüfen. Der Glyphenindex der fehlenden Glyphe kann für eine bestimmte Schriftart bestimmt werden, indem ScriptGetFontProperties aufgerufen wird. Wenn eine bestimmte Glyphe nicht verfügbar ist, muss die Anwendung entweder auf eine andere Schriftart für eine Glyphe zurückgreifen oder ein Grafiksymbol rendern, das angibt, dass keine Glyphe verfügbar ist.

Ermitteln der Notwendigkeit eines Schriftartfallbacks für nicht unterstützte komplexe Skripts

Die Schriftart, die eine Anwendung für die Anzeige bevorzugt, unterstützt möglicherweise kein komplexes Skript, das für den Text erforderlich ist. In diesem Fall schlägt der Anwendungsaufruf von ScriptShape mit dem Fehlercode E_SCRIPT_NOT_IN_FONT fehl.

Zuweisen einer Fallbackschriftart

Nachdem festgestellt wurde, dass ein Schriftartfallback erforderlich ist, muss die Anwendung eine Fallbackschriftart zuweisen. Die Anwendung kann die folgenden Techniken ausprobieren:

  • Rufen Sie ScriptShape für jede Schriftart in einer Schriftartenliste auf, bis ein Aufruf eine akzeptable Rückgabe aufweist.
  • Rufen Sie ScriptShape mit jeder Schriftart in einer Liste auf, bis festgestellt werden kann, dass keine Schriftart erfolgreich ist. Wenn der Fehlercode immer E_SCRIPT_NOT_IN_FONT ist, wird ein komplexes Skript von den Schriftarten nicht unterstützt. Rendern Sie entweder ein Grafiksymbol, das angibt, dass keine Glyphe verfügbar ist, oder geben Sie das Skript als undefiniert (keine Skriptverarbeitung) neu an, und starten Sie erneut. Um das Skript als undefiniert festzulegen, legen Sie den eScript-Member der SCRIPT_ANALYSIS-Struktur auf SCRIPT_UNDEFINED fest.
  • Rufen Sie ScriptShape mit jeder Schriftart in einer Liste auf, bis festgestellt werden kann, dass keine Schriftart erfolgreich ist. Wenn der Fehlercode angibt, dass einige der Zeichen fehlenden Glyphen zugeordnet sind, teilen Sie die Zeichenfolge in kleinere Bereiche auf. Unterbereiche können verschiedene Schriftarten zugewiesen werden, sodass mehr Zeichen gerendert werden können.

Generieren von Glypheninformationen

Sobald die Anwendung eine Schriftart zugewiesen hat, die in Aufrufen von ScriptShape erfolgreich ist, kann sie ScriptPlace aufrufen, um Glyphenvorausdebreite und zweidimensionale Offsetinformationen aus der Ausgabe von ScriptShape zu generieren. Die Schriftart sollte in diesen Aufrufen erfolgreich sein. Ein Schriftartfehler in einem Aufruf von ScriptPlace nach erfolgreicher Ausführung eines ScriptShape-Aufrufs weist auf eine fehlerhafte Schriftart hin.

Verwenden von Uniscribe