Verwenden des Schriftartfallbacks
Hinweis
In diesem Thema gelten alle Hinweise zu ScriptShape gleichermaßen für ScriptShapeOpenType.
Ihre Anwendung muss ein Schriftartfallback während der Textanzeige 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 eines Schriftartfallbacks 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 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 des fehlenden Glyphen kann durch Aufrufen von ScriptGetFontPropertiesfür eine bestimmte Schriftart bestimmt werden. Wenn ein bestimmtes Symbol nicht verfügbar ist, muss die Anwendung entweder auf eine andere Schriftart für ein Symbol zurückfallen oder ein Grafiksymbol rendern, das angibt, dass kein Symbol 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 Schriftartliste auf, bis ein Aufruf eine akzeptable Rückgabe hat.
- Rufen Sie ScriptShape mit jeder Schriftart in einer Liste auf, bis ermittelt 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 kein Symbol verfügbar ist, oder geben Sie das Skript als nicht definiert (keine Skriptverarbeitung) erneut an, und starten Sie es erneut. Legen Sie zum Festlegen des Skripts als nicht definiert den eScript-Member der SCRIPT _ ANALYSIS-Struktur auf SCRIPT _ UNDEFINED fest.
- Rufen Sie ScriptShape mit jeder Schriftart in einer Liste auf, bis ermittelt werden kann, dass keine Schriftart erfolgreich ist. Wenn der Fehlercode angibt, dass einige der Zeichen fehlenden Glyphen zuordnen, unterlegen Sie die Zeichenfolge in kleinere Bereiche. Unterbereiche können unterschiedliche Schriftarten zugewiesen werden, damit mehr Zeichen gerendert werden können.
Generieren von Glypheninformationen
Sobald die Anwendung eine Schriftart zugewiesen hat, die in Aufrufen von ScriptShapeerfolgreich ist, kann sie ScriptPlace aufrufen, um informationen zur Glyphenbreite und zum zweidimensionalen Offset aus der Ausgabe von ScriptShape zu generieren. Die Schriftart sollte in diesen Aufrufen erfolgreich sein. Ein Schriftartfehler in einem Aufruf von ScriptPlace nach der erfolgreichen Ausführung eines ScriptShape-Aufrufs weist auf eine fehlerhafte Schriftart hin.