Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
In questo argomento, tutte le osservazioni su ScriptShape si applicano allo stesso modo a ScriptShapeOpenType.
L'applicazione deve usare il fallback del tipo di carattere durante la visualizzazione del testo se alcuni caratteri in una stringa non sono supportati nel tipo di carattere o se l'applicazione usa uno script complesso non supportato dal tipo di carattere. Il requisito per il fallback del font viene rilevato durante il processo di layout del testo, quando l'applicazione chiama la funzione ScriptShape. Per informazioni sulla visualizzazione del testo, vedere Visualizzazione di testo con Uniscribe.
Determinare la necessità di sostituzione automatica del tipo di carattere per i caratteri non supportati
Se alcuni caratteri di una stringa non sono supportati in un tipo di carattere richiesto, una chiamata dell'applicazione a ScriptShape ha esito positivo. Tuttavia, l'applicazione deve analizzare il buffer di output del glifo per verificare la presenza di glifi mancanti. L'indice del glifo mancante può essere determinato per un tipo di carattere specifico chiamando ScriptGetFontProperties. Se un particolare glifo non è disponibile, l'applicazione deve eseguire il fallback a un tipo di carattere diverso per un glifo o eseguire il rendering di un simbolo grafico che indica che non è disponibile alcun glifo.
Stabilire la necessità di utilizzare un carattere alternativo per gli script complessi non supportati
Il tipo di carattere che un'applicazione preferisce per la visualizzazione potrebbe non supportare uno script complesso richiesto dal testo. In questo caso, la chiamata dell'applicazione a ScriptShape ha esito negativo con il codice di errore E_SCRIPT_NOT_IN_FONT.
Assegnare un font di fallback
Dopo aver determinato che è necessario il fallback del tipo di carattere, l'applicazione deve assegnare un tipo di carattere di fallback. L'applicazione può provare le tecniche seguenti:
- Chiamare ScriptShape per ogni tipo di carattere in un elenco di tipi di carattere fino a quando una chiamata non restituisce un risultato accettabile.
- Chiamare ScriptShape con ogni tipo di carattere in un elenco fino a quando non è possibile determinare che nessun tipo di carattere avrà esito positivo. Se il codice di errore è sempre E_SCRIPT_NOT_IN_FONT, uno script complesso non è supportato dai tipi di carattere. Eseguire il rendering di un simbolo grafico che indica che non è disponibile alcun glifo oppure specificare nuovamente lo script come non definito (nessuna elaborazione script) e ricominciare. Per impostare lo script come non definito, impostare il membro eScript della struttura SCRIPT_ANALYSIS su SCRIPT_UNDEFINED.
- Chiamare ScriptShape con ciascun tipo di carattere dall'elenco fino a quando non si può stabilire che nessun tipo di carattere riuscirà. Se il codice di errore indica che alcuni caratteri vengono associati a glifi mancanti, dividere la stringa in intervalli più piccoli. È possibile assegnare tipi di carattere diversi a intervalli secondari in modo che sia possibile eseguire il rendering di più caratteri.
Generare informazioni sul glifo
Dopo che l'applicazione ha assegnato un tipo di carattere che ha esito positivo nelle chiamate a ScriptShape, può effettuare chiamate a ScriptPlace per generare informazioni sull'avanzamento del glifo e sull'offset bidimensionale dall'output di ScriptShape. Il tipo di carattere dovrebbe avere esito positivo in queste chiamate. Un errore di font in una chiamata ScriptPlace dopo l'esito positivo di una chiamata a ScriptShape indica un font danneggiato.
Argomenti correlati