THotPDF GPOS Kerning and Placement Methods

THotPDF API reference

 

THotPDF Methods  Auto Shaping  GSUB

Τεκμηριώνει τα GPOS pair-kerning, contextual kerning, vertical kerning, cursive-anchor, mark-positioning και mark-to-ligature queries του HotPDF, καθώς και τα ShapingFeatures flags που τα εφαρμόζουν κατά την έξοδο κειμένου

 

Delphi syntax

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

APIΣημειώσεις χρήσης
HasGPOSKerningReports whether the registered Unicode font exposes GPOS kerning lookups
GetGPOSPairAdjustmentReturns the signed advance adjustment for an ordered glyph pair and can also return placement-aware X/Y offsets through the overload
GetGPOSContextualKernRunReturns per-glyph contextual kern adjustments by resolving GPOS Type 7 and Type 8 positioning rules over a glyph run
HasGPOSVerticalKernReports whether the registered Unicode font exposes vertical kerning or vertical proportional adjustment lookups
GetGPOSVerticalKernReturns signed vertical YAdvance adjustment from vkrn or vpal lookups for an ordered glyph pair
GetGPOSMarkOffsetReturns Mark-to-Base placement offsets for attaching a mark glyph to a base glyph
GetGPOSMarkMarkOffsetReturns Mark-to-Mark placement offsets for stacking one mark glyph on another
HasGPOSCursiveReports whether the registered Unicode font exposes GPOS cursive attachment lookups
GetGPOSCursiveAnchorsReturns entry and exit cursive anchors for a glyph when the font supplies a cursive attachment rule
GetGPOSMarkToLigatureOffsetReturns Mark-to-Ligature placement offsets for attaching a mark to a specific ligature component
GetGPOSLigatureComponentCountReturns the number of mark-attachment components recorded for a ligature glyph so callers can choose a valid ComponentIndex before calling GetGPOSMarkToLigatureOffset
ApplyMarkToLigatureShapingRecords ligature component ownership so mark-to-ligature offsets can be applied during text emission
sfKerningEnables GPOS pair-kerning adjustments during left-to-right Unicode text emission
sfMarkPositioningEnables GPOS Mark-to-Base and Mark-to-Mark offsets for combining marks
sfMarkToLigatureEnables GPOS Mark-to-Ligature offsets for marks attached to individual ligature components
sfCursiveAttachmentΕνεργοποιεί την ευθυγράμμιση GPOS cursive entry/exit anchor κατά την εκπομπή Unicode text, συμπεριλαμβανομένων right-to-left Arabic runs που έχουν διαμορφωθεί από sfArabicGSUB
sfVerticalKerningΕνεργοποιεί την προσαρμογή vertical advance GPOS vkrn και vpal στη διαδρομή vertical text output

 

Σημειώσεις χρήσης

Το pair kerning επιστρέφει signed advance και placement adjustments σε 1000-unit em. Το contextual kerning επιλύει Type 7 και Type 8 lookups σε όλο το glyph run. Το mark positioning καλύπτει Mark-to-Base, Mark-to-Mark και Mark-to-Ligature anchors. Το ApplyMarkToLigatureShaping προετοιμάζει τα run-level ligature component data που χρησιμοποιεί το sfMarkToLigature. Το cursive attachment ευθυγραμμίζει exit anchor σε ένα glyph με entry anchor στο επόμενο glyph, κάτι ιδιαίτερα χρήσιμο αφού το native Arabic GSUB shaping έχει παράγει font-specific contextual glyph IDs που μεταφέρουν αυτά τα anchors. Η emit path τα εφαρμόζει μόνο όταν είναι ενεργό το αντίστοιχο shaping flag

 

See also: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline