使用字型後援
注意
在本主題中, ScriptShape 的所有備註都同樣適用于 ScriptShapeOpenType。
如果您的字型不支援字串中的某些字元,或應用程式使用字型不支援 的複雜字集 ,則應用程式必須在文字顯示期間使用字型後援。 當應用程式呼叫 ScriptShape 函式時,會在文字的版面配置程式期間偵測字型後援的需求。 如需文字顯示的相關資訊,請參閱 使用 Uniscribe 顯示文字。
判斷不支援字元的字型後援需求
如果要求字型不支援字串中的某些字元, 則應用程式呼叫 ScriptShape 會成功。 不過,應用程式必須掃描圖像輸出緩衝區中是否有遺漏的字元。 藉由呼叫 ScriptGetFontProperties,即可判斷特定字型的字元索引。 如果無法使用特定圖像,應用程式必須回復為圖像的不同字型,或轉譯圖形符號,指出沒有圖像可用。
判斷不支援複雜字集的字型後援需求
應用程式偏好顯示的字型可能不支援文字所需的複雜字集。 在此情況下, ScriptShape 的應用程式呼叫會失敗,錯誤碼E_SCRIPT_NOT_IN_FONT。
指派後援字型
一旦判斷需要字型後援,應用程式就必須指派後援字型。 應用程式可以嘗試下列技術:
- 呼叫字型清單中的每一個字型 的 ScriptShape ,直到一個呼叫有可接受的傳回。
- 使用清單中的每一個字型呼叫 ScriptShape ,直到判斷不會成功字型為止。 如果錯誤碼一律E_SCRIPT_NOT_IN_FONT,字型不支援複雜的腳本。 轉譯圖形符號,指出沒有圖像可用,或將腳本重新指定為未定義, (沒有腳本處理) 重新開始。 若要將腳本設定為未定義,請將SCRIPT_ANALYSIS結構的eScript成員設定為 SCRIPT_UNDEFINED。
- 使用清單中的每一個字型呼叫 ScriptShape ,直到判斷不會成功字型為止。 如果錯誤碼指出某些字元對應到遺漏字元,請將字串分成較小的範圍。 不同的字型可以指派給子範圍,以便轉譯更多字元。
產生字元資訊
一旦應用程式指派成功呼叫 ScriptShape的字型之後,就可以呼叫 ScriptPlace ,從 ScriptShape的輸出產生圖像進階寬度和二維位移資訊。 字型應該會在這些呼叫中成功。 在 ScriptShape呼叫成功之後呼叫ScriptPlace的字型失敗表示字型中斷。
相關主題