Metody kerningu i pozycjonowania GPOS THotPDF

THotPDF Referencja API

 

Metody THotPDF  Automatyczne kształtowanie  GSUB

Dokumentuje zapytania HotPDF dla parowego kerningu GPOS, kerningu kontekstowego, kerningu pionowego, kotwic kursywnych, pozycjonowania znaków diakrytycznych i mark-to-ligature oraz flagi ShapingFeatures stosujące je podczas wyjścia tekstu

 

Składnia 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;

 

Objęte API

APIUwagi dotyczące użycia
HasGPOSKerningInformuje, czy zarejestrowana czcionka Unicode udostępnia lookupy kerningu GPOS
GetGPOSPairAdjustmentZwraca podpisaną korektę advance dla uporządkowanej pary glifów i może przez overload zwrócić również przesunięcia X/Y zależne od pozycjonowania
GetGPOSContextualKernRunZwraca korekty kerningu kontekstowego na glif, rozwiązując reguły pozycjonowania GPOS Type 7 i Type 8 na przebiegu glifów
HasGPOSVerticalKernInformuje, czy zarejestrowana czcionka Unicode udostępnia pionowy kerning lub pionowe lookupy korekty proporcjonalnej
GetGPOSVerticalKernZwraca podpisaną pionową korektę YAdvance z lookupów vkrn lub vpal dla uporządkowanej pary glifów
GetGPOSMarkOffsetZwraca przesunięcia Mark-to-Base do przyłączenia glifu znaku do glifu bazowego
GetGPOSMarkMarkOffsetZwraca przesunięcia Mark-to-Mark do ułożenia jednego glifu znaku na innym
HasGPOSCursiveInformuje, czy zarejestrowana czcionka Unicode udostępnia lookupy GPOS dla połączeń kursywnych
GetGPOSCursiveAnchorsZwraca wejściowe i wyjściowe kotwice kursywne dla glifu, gdy czcionka dostarcza regułę połączenia kursywnego
GetGPOSMarkToLigatureOffsetZwraca przesunięcia Mark-to-Ligature do przyłączenia znaku do konkretnego komponentu ligatury
GetGPOSLigatureComponentCountZwraca liczbę komponentów przyłączenia znaku zapisanych dla glifu ligatury, aby wywołujący mógł wybrać prawidłowy ComponentIndex przed GetGPOSMarkToLigatureOffset
ApplyMarkToLigatureShapingZapisuje własność komponentów ligatury, aby przesunięcia mark-to-ligature mogły zostać zastosowane podczas emisji tekstu
sfKerningWłącza korekty parowego kerningu GPOS podczas emisji tekstu Unicode od lewej do prawej
sfMarkPositioningWłącza przesunięcia GPOS Mark-to-Base i Mark-to-Mark dla znaków łączących
sfMarkToLigatureWłącza przesunięcia GPOS Mark-to-Ligature dla znaków dołączonych do poszczególnych komponentów ligatur
sfCursiveAttachmentWłącza wyrównanie kursywnych kotwic wejścia/wyjścia GPOS podczas emisji tekstu Unicode, w tym arabskich przebiegów od prawej do lewej kształtowanych przez sfArabicGSUB
sfVerticalKerningWłącza pionową korektę advance GPOS vkrn i vpal w ścieżce pionowego wyjścia tekstu

 

Uwagi dotyczące użycia

Kerning parowy zwraca podpisane korekty advance i pozycjonowania w em o 1000 jednostek. Kerning kontekstowy rozwiązuje lookupy Type 7 i Type 8 na przebiegu glifów. Pozycjonowanie znaków obejmuje kotwice Mark-to-Base, Mark-to-Mark i Mark-to-Ligature. ApplyMarkToLigatureShaping przygotowuje dane komponentów ligatury na poziomie przebiegu używane przez sfMarkToLigature. Połączenie kursywne wyrównuje kotwicę wyjścia jednego glifu z kotwicą wejścia następnego, co jest najbardziej przydatne po tym, jak natywne kształtowanie Arabic GSUB wytworzy specyficzne dla czcionki kontekstowe ID glifów niosące te kotwice. Ścieżka emisji stosuje te korekty tylko wtedy, gdy odpowiednia flaga kształtowania jest włączona

 

Zobacz też: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline