Metodele THotPDF pentru kerning și poziționare GPOS

THotPDF referință API

 

Metode THotPDF  Modelare automată  GSUB

Documentează interogările HotPDF pentru kerning în pereche GPOS, kerning contextual, kerning vertical, ancore cursive, poziționare a mărcilor și mark-to-ligature, plus indicatoarele ShapingFeatures care le aplică în timpul ieșirii de text

 

Sintaxă 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;

 

API-uri acoperite

APINote de utilizare
HasGPOSKerningRaportează dacă fontul Unicode înregistrat expune căutări GPOS pentru kerning
GetGPOSPairAdjustmentReturnează ajustarea semnată a avansului pentru o pereche ordonată de glife și poate returna și deplasări X/Y sensibile la poziționare prin suprasarcină
GetGPOSContextualKernRunReturnează ajustări de kerning contextual pentru fiecare glif, rezolvând regulile de poziționare GPOS de tip 7 și tip 8 peste un șir de glife
HasGPOSVerticalKernRaportează dacă fontul Unicode înregistrat expune căutări pentru kerning vertical sau ajustare verticală proporțională
GetGPOSVerticalKernReturnează ajustarea verticală semnată YAdvance din căutări vkrn sau vpal pentru o pereche ordonată de glife
GetGPOSMarkOffsetReturnează deplasările de poziționare Mark-to-Base pentru atașarea unui glif de marcă la un glif de bază
GetGPOSMarkMarkOffsetReturnează deplasările de poziționare Mark-to-Mark pentru suprapunerea unui glif de marcă peste altul
HasGPOSCursiveRaportează dacă fontul Unicode înregistrat expune căutări GPOS pentru atașare cursivă
GetGPOSCursiveAnchorsReturnează ancorele cursive de intrare și ieșire pentru un glif atunci când fontul furnizează o regulă de atașare cursivă
GetGPOSMarkToLigatureOffsetReturnează deplasările de poziționare Mark-to-Ligature pentru atașarea unei mărci la o componentă specifică a unei ligaturi
GetGPOSLigatureComponentCountReturnează numărul de componente de atașare a mărcilor înregistrate pentru un glif de ligatură, astfel încât apelanții să poată alege un ComponentIndex valid înainte de a apela GetGPOSMarkToLigatureOffset
ApplyMarkToLigatureShapingÎnregistrează apartenența componentelor ligaturii, astfel încât deplasările mark-to-ligature să poată fi aplicate în timpul emiterii textului
sfKerningActivează ajustările GPOS pentru kerning în pereche în timpul emiterii textului Unicode de la stânga la dreapta
sfMarkPositioningActivează deplasările GPOS Mark-to-Base și Mark-to-Mark pentru semnele combinate
sfMarkToLigatureActivează deplasările GPOS Mark-to-Ligature pentru semnele atașate la componente individuale ale ligaturii
sfCursiveAttachmentActivează alinierea ancorelor de intrare și ieșire cursivă în timpul emiterii textului Unicode, inclusiv pentru șirurile arabe de la dreapta la stânga modelate de sfArabicGSUB
sfVerticalKerningActivează ajustarea verticală a avansului GPOS prin vkrn și vpal în calea de ieșire a textului vertical

 

Note de utilizare

Kerningul în pereche returnează ajustări semnate ale avansului și ale poziționării într-un em de 1000 de unități. Kerningul contextual rezolvă căutările de tip 7 și tip 8 pe un șir de glife. Poziționarea mărcilor acoperă ancorele Mark-to-Base, Mark-to-Mark și Mark-to-Ligature. ApplyMarkToLigatureShaping pregătește datele de nivel de șir despre componentele ligaturii folosite de sfMarkToLigature. Atașarea cursivă aliniază o ancoră de ieșire de pe un glif la o ancoră de intrare de pe gliful următor, ceea ce este cel mai util după ce modelarea GSUB arabă nativă a produs ID-urile de glif contextual specifice fontului care poartă acele ancore. Calea de emitere le aplică numai când este activat indicatorul de modelare corespunzător

 

Vezi și: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline