THotPDF GPOS aralık ve yerleştirme yöntemleri

THotPDF API başvurusu

 

THotPDF yöntemleri  Otomatik şekillendirme  GSUB

HotPDF’nin GPOS çift aralık, bağlamsal aralık, dikey aralık, el yazısı ankırı, işaret yerleştirme ve mark-to-ligature sorgularını ve bunları metin çıktısı sırasında uygulayan ShapingFeatures bayraklarını belgeler

 

Delphi sözdizimi

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;

 

Kapsanan API’ler

APIKullanım notları
HasGPOSKerningKayıtlı Unicode yazı tipinin GPOS aralık lookup’ları açıp açmadığını bildirir
GetGPOSPairAdjustmentSıralı bir glif çifti için işaretli advance ayarını döndürür ve overload üzerinden yerleştirme duyarlı X/Y ofsetleri de döndürebilir
GetGPOSContextualKernRunBir glif dizisi üzerinde GPOS Type 7 ve Type 8 konumlandırma kurallarını çözerek glif başına bağlamsal aralık ayarları döndürür
HasGPOSVerticalKernKayıtlı Unicode yazı tipinin dikey aralık veya dikey oransal ayar lookup’ları açıp açmadığını bildirir
GetGPOSVerticalKernSıralı bir glif çifti için vkrn veya vpal lookup’larından işaretli dikey YAdvance ayarını döndürür
GetGPOSMarkOffsetBir işaret glifini temel glife eklemek için Mark-to-Base yerleştirme ofsetleri döndürür
GetGPOSMarkMarkOffsetBir işaret glifini başka bir işaret glifinin üzerine yığmak için Mark-to-Mark yerleştirme ofsetleri döndürür
HasGPOSCursiveKayıtlı Unicode yazı tipinin GPOS el yazısı bağlantı lookup’ları açıp açmadığını bildirir
GetGPOSCursiveAnchorsYazı tipi el yazısı bağlantı kuralı sağladığında bir glif için giriş ve çıkış el yazısı ankırlarını döndürür
GetGPOSMarkToLigatureOffsetBir işareti belirli bir ligatür bileşenine eklemek için Mark-to-Ligature yerleştirme ofsetleri döndürür
GetGPOSLigatureComponentCountBir ligatür glifi için kaydedilmiş işaret-ekleme bileşenlerinin sayısını döndürür, böylece çağıran GetGPOSMarkToLigatureOffset çağırmadan önce geçerli bir ComponentIndex seçebilir
ApplyMarkToLigatureShapingMetin yayımı sırasında mark-to-ligature ofsetlerinin uygulanabilmesi için ligatür bileşeni sahipliğini kaydeder
sfKerningSoldan sağa Unicode metin yayımı sırasında GPOS çift aralık ayarlarını etkinleştirir
sfMarkPositioningBirleşen işaretler için GPOS Mark-to-Base ve Mark-to-Mark ofsetlerini etkinleştirir
sfMarkToLigatureTek tek ligatür bileşenlerine eklenen işaretler için GPOS Mark-to-Ligature ofsetlerini etkinleştirir
sfCursiveAttachmentUnicode metin yayımı sırasında GPOS el yazısı giriş/çıkış ankırı hizalamasını etkinleştirir, sfArabicGSUB ile şekillendirilmiş sağdan sola Arapça akışlar dahil
sfVerticalKerningDikey metin çıktı yolunda GPOS vkrn ve vpal dikey advance ayarını etkinleştirir

 

Kullanım notları

Çift aralık, 1000 birimlik em içinde işaretli advance ve yerleştirme ayarları döndürür. Bağlamsal aralık, bir glif dizisi üzerinde Type 7 ve Type 8 lookup’larını çözer. İşaret yerleştirme Mark-to-Base, Mark-to-Mark ve Mark-to-Ligature ankırlarını kapsar. ApplyMarkToLigatureShaping, sfMarkToLigature tarafından kullanılan dizi düzeyi ligatür bileşen verisini hazırlar. El yazısı bağlantı bir glifteki çıkış ankırını sonraki glifteki giriş ankırına hizalar; bu, yerel Arabic GSUB şekillendirmesi bu ankırları taşıyan yazı tipine özgü bağlamsal glif ID’lerini ürettikten sonra en kullanışlıdır. Çıktı yolu bu ayarları yalnızca eşleşen şekillendirme bayrağı etkin olduğunda uygular

 

Ayrıca bkz: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline