|
OpenType GSUB Substitution Engine Glyph substitution capability surface (v2.119.43 - v2.119.50)
|
Arabic Shaping CFF / OpenType Subsetting |
|
OpenType GSUB (Glyph SUBstitution) engine ภายใน HotPDF ช่วยให้ callers query, drive และ embed glyph substitution ทุกชนิดที่ OpenType font ประกาศไว้ เช่น ligatures, stylistic alternates, contextual variants, Arabic / Indic shaping forms, CJK alternate forms และอื่น ๆ LookupType 1 ถึง 8 ของ OpenType GSUB ทั้งหมดถูก implement และเปิดเป็น capability-only query surface; caller เป็นผู้ขับการ emit ข้อความและตัดสินใจว่าจะเขียน substitute glyph ใดลงใน page content stream
Public API type TGSUBStringArray = array of AnsiString;
// LookupType 1 - Single Substitution (one glyph -> one glyph) function GetSingleSubstituteGlyph(InputGID: Word; const FeatureTag: AnsiString): Word;
// LookupType 2 - Multiple Substitution (one glyph -> sequence of glyphs) function GetMultipleSubstituteGlyphs(InputGID: Word; const FeatureTag: AnsiString; var OutGIDs: array of Word): Boolean;
// LookupType 3 - Alternate Substitution (one glyph -> one of N alternates) function GetAlternateGlyphCount(InputGID: Word; const FeatureTag: AnsiString): Integer; function GetAlternateGlyph(InputGID: Word; const FeatureTag: AnsiString; AlternateIndex: Integer): Word;
// LookupType 4 - Ligature Substitution (N glyphs -> one ligature) function ApplyLigatureSubstitution(const InputGIDs: array of Word; StartIndex: Integer; const FeatureTag: AnsiString; out OutGID: Word; out ConsumedCount: Integer): Boolean;
// LookupType 5 + 6 - Contextual / Chained Contextual Substitution function ApplyContextualSubst(const InputGIDs: array of Word; StartIndex: Integer; const FeatureTag: AnsiString; var OutGIDs: array of Word; out ConsumedLen: Integer): Boolean;
// LookupType 8 - Reverse Chained Contextual Single Substitution function ApplyReverseChainedContextualSubst(const InputGIDs: array of Word; StartIndex: Integer; const FeatureTag: AnsiString; out OutGID: Word): Boolean;
// Script / LangSys selection (Phase 7) procedure SetGSUBScript(const ScriptTag: AnsiString); procedure SetGSUBLanguage(const LangTag: AnsiString); function GetGSUBScripts: TGSUBStringArray; function GetGSUBLanguages(const ScriptTag: AnsiString): TGSUBStringArray; function GetGSUBFeatures(const ScriptTag, LangTag: AnsiString): TGSUBStringArray;
// TTF subsetter closure (Phase 9) procedure MarkUnicodeGlyphUsed(GID: Word);
คำอธิบาย API สาธารณะ วิธีที่ผู้เรียกใช้ขับเคลื่อน ข้อกำหนดของฟอนต์ ดูเพิ่มเติม: ไปป์ไลน์การจัดรูปอัตโนมัติ (Phase 8), THotPDF.AssignSyntheticCodepointForGID, THotPDF.SetGSUBScript, การทำชุดย่อยฟอนต์ CFF / OpenType |