共用方式為


使用字型後援

注意

在本主題中,有關 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 時字型失敗,這表示字型已中斷。

使用 Uniscribe