THotPDF Font Fallback Methods
순서가 있는 폴백 face를 구성하고 커버리지와 세로쓰기 메트릭 진단을 노출합니다
선언
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는 기본 face를 먼저 확인하고, 다음으로 맞는 스크립트 체인, 그다음hfsCommon을 확인합니다- 설치된 face가 GDI face 치환 없이 스칼라를 해석할 때만 결과가 true입니다
- family, face 스타일, 스칼라를 반복 탐침하면 1024항목 제한 캐시를 쓰며, private 폰트를 등록하면 이 캐시는 무효화됩니다
- explicit-style overload는 선택된 bold 및 italic face를 검사하고, 기존 overload는 regular face 동작을 유지합니다
AnalyzeUnresolvedGlyphs는 반복되는 미해결 스칼라·기본 face 쌍을 중복 제거합니다GetVerticalGlyphMetrics는 등록된 OpenType 세로쓰기 메트릭이 있으면 이를 반환하고, 없으면 설정된 기본값을 노출합니다SetVerticalDefaultMetrics는 1000단위 glyph 공간에서 양수 어드밴스를 요구합니다