|
記錄 HotPDF 的 GPOS pair-kerning、contextual kerning、vertical kerning、cursive-anchor、mark-positioning 與 mark-to-ligature queries,以及 text output 期間套用它們的 ShapingFeatures flags THotPDF API reference
|
THotPDF Methods Auto Shaping GSUB |
|
說明 HotPDF 的 GPOS pair-kerning、contextual kerning、vertical kerning、cursive-anchor、mark-positioning 與 mark-to-ligature queries,以及文字輸出期間套用它們的 ShapingFeatures flags
Delphi 語法 function HasGPOSKerning: Boolean; function GetGPOSPairAdjustment(FirstGID, SecondGID: Word): Integer; function GetGPOSPairAdjustment(FirstGID, SecondGID: Word; out AXPlacement, AYPlacement, AYAdvance: Integer): Integer; function GetGPOSContextualKernRun(const GIDs: array of Word): TArray<Integer>; function HasGPOSVerticalKern: Boolean; function GetGPOSVerticalKern(FirstGID, SecondGID: Word): Integer; function GetGPOSMarkOffset(BaseGID, MarkGID: Word; out DX, DY: Integer): Boolean; function GetGPOSMarkMarkOffset(BaseMarkGID, AttachMarkGID: Word; out DX, DY: Integer): Boolean; function HasGPOSCursive: Boolean; function GetGPOSCursiveAnchors(GID: Word; out EntryX, EntryY, ExitX, ExitY: Integer; out HasEntry, HasExit: Boolean): Boolean; function GetGPOSMarkToLigatureOffset(LigGID: Word; ComponentIndex: Integer; MarkGID: Word; out DX, DY: Integer): Boolean; function GetGPOSLigatureComponentCount(LigGID: Word): Integer; function ApplyMarkToLigatureShaping(const Wide: UnicodeString): UnicodeString;
Covered APIs
使用注意事項 Pair kerning 會以 1000-unit em 傳回 signed advance 與 placement adjustments。Contextual kerning 會跨 glyph run 解析 Type 7 與 Type 8 lookups。Mark positioning 涵蓋 Mark-to-Base、Mark-to-Mark 與 Mark-to-Ligature anchors。ApplyMarkToLigatureShaping 會準備 sfMarkToLigature 使用的 run-level ligature component data。Cursive attachment 會將一個 glyph 的 exit anchor 對齊到下一個 glyph 的 entry anchor,這在 native Arabic GSUB shaping 已產生帶有這些 anchors 的 font-specific contextual glyph IDs 後最有用。emit path 只會在相符 shaping flag 啟用時套用這些項目
請參閱: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline |