THotPDF GPOS Kerning- und Platzierungsmethoden

THotPDF API reference

 

THotPDF-Methoden  Automatische Textgestaltung  GSUB

Dokumentiert HotPDFs GPOS-Abfragen für Paar-Kerning, kontextuelles Kerning, vertikales Kerning, Cursive-Anker, Mark-Positionierung und Mark-to-Ligature sowie die ShapingFeatures-Flags, die sie während der Textausgabe anwenden

 

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;

 

Abgedeckte APIs

APIVerwendungshinweise
HasGPOSKerningMeldet, ob die registrierte Unicode-Schriftart GPOS-Kerning-Lookups bereitstellt
GetGPOSPairAdjustmentGibt die vorzeichenbehaftete Vorschubsanpassung für ein geordnetes Glyphenpaar zurück und kann über die Überladung auch platzierungsabhängige X/Y-Versätze zurückgeben
GetGPOSContextualKernRunGibt kontextuelle Kerning-Anpassungen pro Glyphe zurück, indem GPOS-Typ-7- und Typ-8-Positionierungsregeln über einen Glyphenlauf aufgelöst werden
HasGPOSVerticalKernMeldet, ob die registrierte Unicode-Schriftart vertikales Kerning oder vertikale proportionale Anpassungs-Lookups bereitstellt
GetGPOSVerticalKernGibt die vorzeichenbehaftete vertikale YAdvance-Anpassung aus vkrn- oder vpal-Lookups für ein geordnetes Glyphenpaar zurück
GetGPOSMarkOffsetGibt Mark-to-Base-Platzierungsversätze zum Anfügen einer Markierungs-Glyphe an eine Basis-Glyphe zurück
GetGPOSMarkMarkOffsetGibt Mark-to-Mark-Platzierungsversätze zum Stapeln einer Markierungs-Glyphe auf einer anderen zurück
HasGPOSCursiveMeldet, ob die registrierte Unicode-Schriftart GPOS-Schreibschriftverbindungs-Lookups bereitstellt
GetGPOSCursiveAnchorsGibt Eingangs- und Ausgangsschreibschriftanker für eine Glyphe zurück, wenn die Schriftart eine Schreibschriftverbindungsregel bereitstellt
GetGPOSMarkToLigatureOffsetGibt Mark-to-Ligature-Platzierungsversätze zum Anfügen einer Markierung an eine bestimmte Ligaturkomponente zurück
GetGPOSLigatureComponentCountReturns the number of mark-attachment components recorded for a ligature glyph so callers can choose a valid ComponentIndex before calling GetGPOSMarkToLigatureOffset
ApplyMarkToLigatureShapingErfasst die Ligaturkomponentenzugehörigkeit, damit Mark-to-Ligature-Versätze während der Textausgabe angewendet werden können
sfKerningAktiviert GPOS-Paarkerning-Anpassungen während der Unicode-Textausgabe von links nach rechts
sfMarkPositioningAktiviert GPOS-Mark-to-Base- und Mark-to-Mark-Versätze für kombinierende Zeichen
sfMarkToLigatureAktiviert GPOS-Mark-to-Ligature-Versätze für Zeichen, die an einzelnen Ligaturkomponenten angebracht sind
sfCursiveAttachmentAktiviert die GPOS-Schreibschrift-Eingangs-/Ausgangsankerausrichtung während der Unicode-Textausgabe, einschließlich von rechts nach links verlaufender arabischer Abschnitte, die durch gestaltet wurden sfArabicGSUB
sfVerticalKerningAktiviert GPOS-vkrn- und -vpal-Vertikalvorschub-Anpassungen im vertikalen Textausgabepfad

 

Verwendungshinweise

Paarkerning gibt vorzeichenbehaftete Vorschub- und Platzierungsanpassungen in einem 1000-Einheiten-Em zurück; kontextuelles Kerning löst Typ-7- und Typ-8-Lookups über einen Glyphenlauf auf; Markierungspositionierung deckt Mark-to-Base-, Mark-to-Mark- und Mark-to-Ligature-Anker ab; ApplyMarkToLigatureShaping bereitet die Ligaturkomponentendaten auf Laufebene vor, die von sfMarkToLigature verwendet werden; Schreibschrift-Verbindung richtet einen Ausgangsanker auf einer Glyphe an einem Eingangsanker auf der nächsten Glyphe aus, was besonders nützlich ist, nachdem die native arabische GSUB-Gestaltung die schriftspezifischen kontextuellen Glyphen-IDs erzeugt hat, die diese Anker tragen; der Ausgabepfad wendet diese nur an, wenn das entsprechende Gestaltungsflag aktiviert ist

 

See also: ShapingFeatures OpenType-GSUB-Engine Automatische Textgestaltungspipeline