THotPDF Font Fallback Methods
กำหนดค่า fallback face ตามลำดับและเปิดเผยการวินิจฉัย coverage และ vertical-metric
การประกาศ
procedure SetFontFallbackChain(Script: THPDFFontScript;
const FontNames: array of AnsiString);
procedure ClearFontFallbackChain(Script: THPDFFontScript);
procedure ClearAllFontFallbackChains;
function FontFallbackCount(Script: THPDFFontScript): Integer;
function FontFallbackName(Script: THPDFFontScript;
Index: Integer): AnsiString;
function FontScriptForCodePoint(CodePoint: Cardinal): THPDFFontScript;
function ResolveFontForCodePoint(CodePoint: Cardinal;
const PrimaryFontName: AnsiString;
out ResolvedFontName: AnsiString): boolean; overload;
function ResolveFontForCodePoint(CodePoint: Cardinal;
const PrimaryFontName: AnsiString; const FontStyle: TFontStyles;
out ResolvedFontName: AnsiString): boolean; overload;
function AnalyzeUnresolvedGlyphs(const Text: WideString;
const PrimaryFontName: AnsiString): THPDFUnresolvedGlyphInfoArray; overload;
function AnalyzeUnresolvedGlyphs(const Text: WideString;
const PrimaryFontName: AnsiString; const FontStyle: TFontStyles):
THPDFUnresolvedGlyphInfoArray; overload;
function GetUnresolvedGlyphs: THPDFUnresolvedGlyphInfoArray;
procedure ClearUnresolvedGlyphs;
function GetVerticalGlyphMetrics(CodePoint: Cardinal;
out AdvanceY, OriginY: Integer): boolean;
procedure SetVerticalDefaultMetrics(AdvanceY, OriginY: Integer);
ชนิด
THPDFFontScript = (hfsCommon, hfsLatin, hfsGreek, hfsCyrillic,
hfsHebrew, hfsArabic, hfsIndic, hfsSoutheastAsian, hfsCJK,
hfsKana, hfsHangul, hfsEmoji, hfsOther);
THPDFUnresolvedGlyphInfo = record
CodePoint: Cardinal;
FontName: AnsiString;
Script: THPDFFontScript;
SuggestedFonts: AnsiString;
end;
THPDFUnresolvedGlyphInfoArray = array of THPDFUnresolvedGlyphInfo;
หัวข้อสมาชิก
- SetFontFallbackChain
- ClearFontFallbackChain
- ClearAllFontFallbackChains
- FontFallbackCount
- FontFallbackName
- FontScriptForCodePoint
- ResolveFontForCodePoint
- AnalyzeUnresolvedGlyphs
- GetUnresolvedGlyphs
- ClearUnresolvedGlyphs
- GetVerticalGlyphMetrics
- SetVerticalDefaultMetrics
- VerticalDefaultAdvanceY
- VerticalDefaultOriginY
พฤติกรรม
ResolveFontForCodePointตรวจสอบ primary face ก่อน, จากนั้น script chain ที่ตรงกัน, แล้วจึงhfsCommon- ผลลัพธ์เป็น true เฉพาะเมื่อ installed face แก้ไข scalar โดยไม่มีการแทนที่ GDI face
- การตรวจ family, face style และ scalar ซ้ำ ๆ ใช้ cache แบบจำกัด 1,024 รายการที่ถูก invalidate หลังจากการลงทะเบียน private font
- overload แบบระบุสไตล์จะตรวจ face แบบ bold และ italic ที่เลือกไว้ ส่วน overload เดิมคงพฤติกรรมตรวจ face แบบ regular
AnalyzeUnresolvedGlyphsทำซ้ำให้เป็น unique สำหรับคู่ scalar และ primary-face ที่ไม่ได้รับการแก้ไขซ้ำ ๆGetVerticalGlyphMetricsคืน vertical metric ของ OpenType ที่ลงทะเบียนเมื่อพร้อมใช้งาน และเปิดเผยค่าเริ่มต้นที่กำหนดค่าไว้มิฉะนั้นSetVerticalDefaultMetricsต้องการ advance ที่เป็นบวกในพื้นที่ glyph 1000-unit