متدهای جستجوی GSUB در THotPDF

مرجع API برای THotPDF

 

متدهای THotPDF  شکل‌دهی خودکار  GSUB

APIهای lookup سطح توانایی GSUB را برای جانشینی‌های single، multiple، alternate، ligature، contextual، chained contextual، reverse chained، contextual-feature و localized-form مستند می‌کند

 

Delphi syntax

function GetSingleSubstituteGlyph(InputGID: Word; const FeatureTag: AnsiString): Word;

function GetMultipleSubstituteGlyphs(InputGID: Word; const FeatureTag: AnsiString; var OutGIDs: TGSUBLookupArray): Boolean;

function GetAlternateGlyphCount(InputGID: Word; const FeatureTag: AnsiString): Integer;

function GetAlternateGlyph(InputGID: Word; const FeatureTag: AnsiString; AlternateIndex: Integer): Word;

function ApplyLigatureSubstitution(const InputGIDs: array of Word; StartIndex: Integer; const FeatureTag: AnsiString; out OutGID: Word; out ConsumedCount: Integer): Boolean;

function ApplyContextualSubst(const InputGIDs: array of Word; StartIndex: Integer; const FeatureTag: AnsiString; var OutGIDs: TGSUBLookupArray; out ConsumedLen: Integer): Boolean;

function ApplyReverseChainedContextualSubst(const InputGIDs: array of Word; StartIndex: Integer; const FeatureTag: AnsiString; out OutGID: Word): Boolean;

function ApplyGSUBContextualFeature(const Wide: UnicodeString; const AFeatureTag: AnsiString): UnicodeString;

function ApplyLocalizedForms(const Wide: UnicodeString): UnicodeString;

 

APIهای پوشش‌داده‌شده

APIیادداشت‌های استفاده
GetSingleSubstituteGlyphجانشینی single در GSUB LookupType 1 را پرس‌وجو می‌کند و وقتی هیچ تطبیقی وجود ندارد GID ورودی را برمی‌گرداند
GetMultipleSubstituteGlyphsجانشینی multiple در GSUB LookupType 2 را پرس‌وجو می‌کند و توالی glyph جایگزین را برمی‌گرداند
GetAlternateGlyphCountglyphهای alternate را برای یک glyph ورودی پوشش‌داده‌شده در GSUB LookupType 3 می‌شمارد
GetAlternateGlyphیک glyph alternate انتخاب‌شده را با index صفرمبنا برمی‌گرداند
ApplyLigatureSubstitutionجانشینی ligature در GSUB LookupType 4 را برای یک glyph run که از یک index مشخص شروع می‌شود پرس‌وجو می‌کند
ApplyContextualSubstجانشینی contextual یا chained contextual در GSUB را جایی اعمال می‌کند که یک rule بتواند بخشی از run را جایگزین کند
ApplyReverseChainedContextualSubstجانشینی single در reverse chained contextual GSUB را برای ruleهای شکل‌دهی سازگار با راست‌به‌چپ پرس‌وجو می‌کند
ApplyGSUBContextualFeatureیک ویژگی contextual نام‌دار GSUB مانند rclt یا calt را روی یک Unicode run اعمال می‌کند و جانشینی‌ها را با ایمنی نگاشت می‌کند
ApplyLocalizedFormsجانشینی‌های locl در GSUB را زیر script و language فعال اعمال می‌کند و در عین حال نگاشت‌های استخراج متن را حفظ می‌کند
MarkUnicodeGlyphUsedیک GID جایگزین برگشتی را به closure زیرمجموعه فونت embedded اضافه می‌کند
sfContextualAlternatesalternateهای contextual لازم را از مسیر lookup contextual سازگار با rclt اعمال می‌کند
sfLocalizedFormsجانشینی‌های localized-form locl در GSUB را زیر script و language فعال اعمال می‌کند

 

یادداشت‌های استفاده

این متدها پاسخ می‌دهند که جدول GSUB فونت چه کاری انجام می‌دهد. ApplyGSUBContextualFeature مسیر مشترک برای ویژگی‌های contextual مانند rclt و calt است؛ ApplyLocalizedForms locl را زیر script و language فعال GSUB اعمال می‌کند. اگر فراخواننده GIDهای جایگزین برگشتی را به‌صورت دستی emit کند، MarkUnicodeGlyphUsed یا یک نگاشت synthetic-codepoint باید آن glyphها را داخل زیرمجموعه embedded و ToUnicode map نگه دارد

 

همچنین ببینید: OpenType GSUB Engine GSUB script and language methods ShapingFeatures Subset and mapping methods