THotPDF Tibetan, Mongolian, and Syriac Shaping Methods

THotPDF API 參考

 

THotPDF Methods  Auto Shaping  GSUB

記錄 Tibetan、Mongolian 與 Syriac 目前的 non-Arabic complex-script shaping helpers

 

Delphi 語法

function TibetanShapeToGIDs(const S: UnicodeString): TGSUBLookupArray;

function ApplyTibetanShaping(const S: UnicodeString): UnicodeString;

function ApplySyriacGSUBPositional(const S: UnicodeString): UnicodeString;

function ApplyMongolianGSUBPositional(const S: UnicodeString): UnicodeString;

function GetSyriacJoiningClass(CP: Cardinal): Integer;

function GetSyriacPosition(const Wide: UnicodeString; Index: Integer): Integer;

function GetMongolianJoiningClass(CP: Cardinal): Integer;

function GetMongolianPosition(const Wide: UnicodeString; Index: Integer): Integer;

 

涵蓋的 API

API使用注意事項
TibetanShapeToGIDs傳回 Tibetan shaping 後的 glyph-ID 序列,但不發出 PDF 文字
ApplyTibetanShaping套用 Tibetan GSUB shaping,並透過 synthetic codepoints 把 shaping 後的 glyph IDs 對應到文字輸出
ApplySyriacGSUBPositional套用 Syriac joining-position 分析與字型 positional GSUB features
ApplyMongolianGSUBPositional套用 Mongolian joining-position 分析與字型 positional GSUB features
GetSyriacJoiningClass傳回 Syriac 位置解析所使用的 Unicode joining class
GetSyriacPosition把 Syriac run 中的項目解析為 isolated、initial、medial 或 final 形式
GetMongolianJoiningClass傳回 Mongolian 位置解析所使用的 joining class,包含透明控制字元
GetMongolianPosition把 Mongolian run 中的項目解析為向 GSUB 要求的 positional form
AutoShapeSyriacopt-in 屬性,會把 Syriac producer-side shaping 連接到文字輸出,同時維持 byte-stable 預設行為
sfTibetanShaping啟用 Tibetan GSUB shaping,並為 shaping 後的 Tibetan glyph IDs 發出 synthetic codepoints
sfMongolianShaping透過 joining 分析與字型 GSUB lookups 啟用 Mongolian positional-form shaping

 

使用注意事項

Tibetan 會使用 GSUB feature passes 處理 subjoined consonants 與 vowels。Syriac 與 Mongolian 會使用 joining-class 與 position walkers 選擇 font-defined init、medi、fina 或 isol forms。AutoShapeSyriac 以及 sfTibetanShaping/sfMongolianShaping flags 會將這些 helpers 連接到 text output

 

請參閱: International Script Shaping ShapingFeatures GSUB script and language methods