THotPDF フォントフォールバックメソッド
順序付けられたフォールバックフェイスを設定し、カバレッジと縦書きメトリックの診断を公開します
宣言
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は最初にプライマリフェイスをチェックし、次に一致するスクリプトチェーン、次にhfsCommonをチェックします- 結果は、インストールされたフェイスが GDI フェイス置換なしでスカラーを解決した場合にのみ true になります
- ファミリー、フェイススタイル、スカラーの繰り返されるプローブは、プライベートフォント登録後に無効化される境界付き 1024 エントリのキャッシュを使用します
- 明示スタイル付きオーバーロードは選択された bold / italic フェイスを検査し、元のオーバーロードは regular フェイスの挙動を保ちます
AnalyzeUnresolvedGlyphsは繰り返される未解決スカラーとプライマリフェイスのペアを重複排除しますGetVerticalGlyphMetricsは利用可能な場合に登録された OpenType 縦書きメトリックを返し、それ以外の場合は設定されたデフォルトを公開しますSetVerticalDefaultMetricsは 1000 ユニットグリフ空間での正の送り幅を必要とします