複雜腳本處理
以下是顯示及處理文字以支援精細印刷效果或複雜腳本的選項:
- 文本函數
- 編輯控制件
- 豐富的編輯控制件
- Uniscribe
您選擇的選項取決於下列因素:
- 文字或腳本的類型。
- 例如,實作模型是應用程式中的文字配置和換行處理。
- 更新現有的應用程式與建立新應用程式。
一般而言,執行相對簡單腳本處理的應用程式可以選擇處理複雜腳本的任何選項。 不過,若要完全控制複雜的腳本處理,建議使用 Uniscribe。
使用文字函式的複雜腳本處理
使用大部分純文本的應用程式, 也就是說,使用相同字樣、粗細、色彩等的文字,使用標準文字函式以傳統方式撰寫文字和測量行長度,例如 TextOut、ExtTextOut、TabbedTextOut、DrawText和 GetTextExtentExPoint。 這些函式支持處理複雜的腳本和精細印刷效果。 如需詳細資訊,請參閱 字型和文字。
一般而言,對處理複雜腳本的應用程式而言,標準文字支援是透明的。 不過,您應該注意一些特定規則,以撰寫支援精細印刷樣式和處理複雜腳本的應用程式:
- 您的應用程式應該將字元儲存在緩衝區中,並一次顯示整行文字,而不是在使用者輸入每個字元時呼叫 ExtTextOut。 此機制可讓進階文字成形模組使用內容來重新排序,並正確產生 字元。
- 應用程式應該使用 GetTextExtentExPoint 來判斷行長度,而不是從快取字元寬度計算行長度,因為字元的寬度可能會因內容而異。
- 應用程式應該選擇性地新增對從右至左閱讀順序和靠右對齊的支援。
- 處理複雜的文字系統或精細排版所需的重新排序和上下文處理,遠比處理簡單文字系統的基本顯示需要大幅增加處理能力。 因此,為了避免效能問題,您的應用程式不應該在顯示結果並將控制權傳回給使用者之前處理大量的文字。
使用編輯控制項處理複雜的腳稿
標準 Windows 編輯控制件已擴充,以支援多語系文字和複雜腳本。 擴充支援包括輸入和顯示,以及游標能正確地在文字群組上移動,例如在泰文和 Devanagari 文字中。 如需詳細資訊,請參閱 編輯控制項。
使用豐富編輯控件的複雜腳本處理
Rich Edit 3.0 是一個更高層次的介面集合,利用 Uniscribe 使文字排版應用程式不受特定腳本複雜性的影響。 Rich Edit 是應用程式顯示複雜腳本的最簡單方式,即使其主要用途不一定是文字配置。 Rich Edit 提供快速、多用途的豐富 Unicode 多語系文字和簡單的純文本編輯。 它包含廣泛的訊息和 COM 介面、文字編輯、格式設定、斷行、簡單表格版面配置、垂直文字版面配置、雙向文字版面配置、索引和泰文支援、編輯使用者介面,例如Microsoft Word 和文字物件模型介面。
除了 Rich Edit 介面,應用程式可以使用 Rich Edit TextOut 函式來自動剖析、排版、定位和換行。 如需詳細資訊,請參閱 Rich Edit Controls。
使用 Uniscribe 的複雜腳本處理
Uniscribe 提供最廣泛的支持來處理涉及精細印刷效果和複雜腳本的文字。 它支援在阿拉伯文、Devanagari 和泰文等腳本中找到的複雜規則。 它會處理從右至左撰寫的腳本,例如阿拉伯文和希伯來文,並支援混合腳本。 Uniscribe 也會公開 OpenType 字型功能,供應用程式用來控制精細印刷效果。 如需詳細資訊,請參閱 處理複雜文稿。
相關主題