THotPDF Font Fallback Methods
Cấu hình các mặt fallback có thứ tự và cung cấp các chẩn đoán vùng bao phủ và metric dọc
Các khai báo
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);
Các kiểu
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;
Các chủ đề thành viên
- SetFontFallbackChain
- ClearFontFallbackChain
- ClearAllFontFallbackChains
- FontFallbackCount
- FontFallbackName
- FontScriptForCodePoint
- ResolveFontForCodePoint
- AnalyzeUnresolvedGlyphs
- GetUnresolvedGlyphs
- ClearUnresolvedGlyphs
- GetVerticalGlyphMetrics
- SetVerticalDefaultMetrics
- VerticalDefaultAdvanceY
- VerticalDefaultOriginY
Hành vi
ResolveFontForCodePointkiểm tra mặt chính trước, sau đó là chuỗi script phù hợp, rồihfsCommon- Kết quả là true chỉ khi một mặt đã cài đặt giải scalar mà không có sự thay thế mặt GDI
- Các thăm dò họ, kiểu mặt, và scalar lặp lại dùng một bộ nhớ đệm có giới hạn 1024 mục được vô hiệu hóa sau khi đăng ký font riêng
- Các overload chỉ định kiểu rõ ràng soi face đậm và nghiêng đã chọn; overload gốc giữ hành vi face regular
AnalyzeUnresolvedGlyphskhử trùng lặp các cặp scalar và mặt chính chưa giải lặp lạiGetVerticalGlyphMetricstrả về các metric dọc OpenType đã đăng ký khi có mặt và tiết lộ các mặc định đã cấu hình nếu khôngSetVerticalDefaultMetricsyêu cầu một advance dương trong không gian glyph 1000 đơn vị