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, які застосовують їх під час виведення тексту

 

Синтаксис 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

APIПримітки щодо використання
HasGPOSKerningПовідомляє, чи надає зареєстрований шрифт Unicode пошуки кернінгу GPOS
GetGPOSPairAdjustmentПовертає підписане коригування зсуву для впорядкованої пари гліфів, а також може повертати зсуви X/Y з урахуванням розміщення через перевантаження
GetGPOSContextualKernRunПовертає коригування контекстного кернінгу для кожного гліфа шляхом розв'язання правил позиціонування GPOS типу 7 та типу 8 у прогоні гліфів
HasGPOSVerticalKernПовідомляє, чи надає зареєстрований шрифт Unicode пошуки вертикального кернінгу або вертикального пропорційного коригування
GetGPOSVerticalKernПовертає підписане коригування вертикального YAdvance із пошуків vkrn або vpal для впорядкованої пари гліфів
GetGPOSMarkOffsetПовертає зміщення розміщення Mark-to-Base для приєднання діакритичного знака до базового гліфа
GetGPOSMarkMarkOffsetПовертає зміщення розміщення Mark-to-Mark для накладання одного діакритичного знака на інший
HasGPOSCursiveПовідомляє, чи надає зареєстрований шрифт Unicode пошуки курсивного приєднання GPOS
GetGPOSCursiveAnchorsПовертає початкові та кінцеві курсивні анкери для гліфа, коли шрифт надає правило курсивного приєднання
GetGPOSMarkToLigatureOffsetПовертає зміщення розміщення Mark-to-Ligature для приєднання знака до конкретного компонента лігатури
GetGPOSLigatureComponentCountReturns the number of mark-attachment components recorded for a ligature glyph so callers can choose a valid ComponentIndex before calling GetGPOSMarkToLigatureOffset
ApplyMarkToLigatureShapingЗаписує володіння компонентами лігатур, щоб зміщення знака на лігатурі можна було застосувати під час виведення тексту
sfKerningВмикає коригування попарного кернінгу GPOS під час виведення тексту Unicode зліва направо
sfMarkPositioningВмикає зміщення GPOS Mark-to-Base та Mark-to-Mark для комбінованих знаків
sfMarkToLigatureВмикає зміщення GPOS Mark-to-Ligature для знаків, приєднаних до окремих компонентів лігатури
sfCursiveAttachmentEnables GPOS cursive entry/exit anchor alignment during Unicode text emission, including right-to-left Arabic runs shaped by sfArabicGSUB
sfVerticalKerningВмикає вертикальне коригування зсуву GPOS vkrn та vpal у шляху виведення вертикального тексту

 

Примітки щодо використання

Попарний кернінг повертає підписані коригування зсуву та розміщення в em з 1000 одиниць; контекстний кернінг розв'язує пошуки типу 7 та типу 8 у прогоні гліфів; позиціонування знаків охоплює анкери Mark-to-Base, Mark-to-Mark та Mark-to-Ligature; ApplyMarkToLigatureShaping готує дані компонентів лігатур на рівні прогону, які використовуються sfMarkToLigature; курсивне приєднання вирівнює вихідний анкер на одному гліфі з вхідним анкером на наступному гліфі, що найкорисніше після того, як нативне формування арабського GSUB створило специфічні для шрифту контекстні ідентифікатори гліфів, які несуть ці анкери; шлях виведення застосовує їх лише тоді, коли ввімкнено відповідний прапорець формування

 

See also: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline