طرق THotPDF للكرنينغ والتموضع في GPOS

THotPDF مرجع API

 

طرق THotPDF  التشكيل التلقائي  GSUB

توثق استعلامات HotPDF لكرنينغ أزواج GPOS والكرنينغ السياقي والكرنينغ الرأسي ومراسي الكتابة المتصلة وتموضع العلامات وmark-to-ligature، إضافة إلى أعلام 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 المسجل lookup للكرنينغ في GPOS
GetGPOSPairAdjustmentيعيد ضبط advance بعلامة لزوج مرتب من glyphs ويمكنه أيضا عبر overload إعادة إزاحات X/Y واعية بالتموضع
GetGPOSContextualKernRunيعيد تعديلات كرنينغ سياقية لكل glyph عبر حل قواعد تموضع GPOS Type 7 وType 8 على تسلسل glyphs
HasGPOSVerticalKernيبلغ هل يعرض خط Unicode المسجل lookup للكرنينغ الرأسي أو الضبط النسبي الرأسي
GetGPOSVerticalKernيعيد ضبط YAdvance رأسي بعلامة من lookup vkrn أو vpal لزوج مرتب من glyphs
GetGPOSMarkOffsetيعيد إزاحات Mark-to-Base لإرفاق glyph علامة ب glyph أساس
GetGPOSMarkMarkOffsetيعيد إزاحات Mark-to-Mark لتكديس glyph علامة فوق آخر
HasGPOSCursiveيبلغ هل يعرض خط Unicode المسجل lookup GPOS للاتصال المتصل
GetGPOSCursiveAnchorsيعيد مراسي الدخول والخروج المتصلة ل glyph عندما يوفر الخط قاعدة اتصال متصل
GetGPOSMarkToLigatureOffsetيعيد إزاحات Mark-to-Ligature لإرفاق علامة بمكون ligature محدد
GetGPOSLigatureComponentCountيعيد عدد مكونات إرفاق العلامات المسجلة ل glyph ligature حتى يختار المستدعي ComponentIndex صالحا قبل استدعاء GetGPOSMarkToLigatureOffset
ApplyMarkToLigatureShapingيسجل ملكية مكونات ligature حتى يمكن تطبيق إزاحات mark-to-ligature أثناء إصدار النص
sfKerningيفعل تعديلات كرنينغ أزواج GPOS أثناء إصدار نص Unicode من اليسار إلى اليمين
sfMarkPositioningيفعل إزاحات GPOS Mark-to-Base وMark-to-Mark للعلامات المركبة
sfMarkToLigatureيفعل إزاحات GPOS Mark-to-Ligature للعلامات المرفقة بمكونات ligature منفردة
sfCursiveAttachmentيفعل محاذاة مراسي GPOS المتصلة دخولا وخروجا أثناء إصدار نص Unicode، بما في ذلك مسارات العربية من اليمين إلى اليسار المشكلة بواسطة sfArabicGSUB
sfVerticalKerningيفعل ضبط advance الرأسي في GPOS vkrn وvpal في مسار إخراج النص الرأسي

 

ملاحظات الاستخدام

يعيد كرنينغ الأزواج تعديلات advance والتموضع بعلامة في em من 1000 وحدة. يحل الكرنينغ السياقي lookup Type 7 وType 8 عبر تسلسل glyphs. يغطي تموضع العلامات مراسي Mark-to-Base وMark-to-Mark وMark-to-Ligature. يجهز ApplyMarkToLigatureShaping بيانات مكونات ligature على مستوى التسلسل التي يستخدمها sfMarkToLigature. يحاذي الاتصال المتصل مرساة خروج glyph مع مرساة دخول glyph التالي، وهو مفيد خصوصا بعد أن ينتج تشكيل Arabic GSUB الأصلي معرفات glyph سياقية خاصة بالخط وتحمل تلك المراسي. يطبق مسار الإخراج هذه التعديلات فقط عندما يكون علم التشكيل المطابق مفعلا

 

راجع أيضا: ShapingFeatures OpenType GSUB Engine Automatic Shaping Pipeline