使用字型後援
注意
在本主題中, 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的字型失敗表示字型中斷。
相關主題