Резервни шрифтове и вертикален текст

HotPDF може да избира резервни начертания по Unicode скрипт, да отчита кодови точки, които остават неразрешени, и да пише CJK текст чрез истински вертикален режим на CID писане

Вериги от резервни шрифтове на ниво документ

THotPDF.SetFontFallbackChain съхранява подреден списък с начертания за една категория THPDFFontScript

THPDFPage.TextOutWithFallback разрешава всеки Unicode скалар спрямо избраното начертание, неговата скриптна верига и общата верига, след това издава съседни скалари със същото начертание като една текстова поредица

Практическа диагностика

AnalyzeUnresolvedGlyphs изпълнява одит на покритието само за четене, докато TextOutWithFallback записва неразрешените скалари, срещнати по време на извеждането

Всеки THPDFUnresolvedGlyphInfo включва кодовата точка на скалара, основното начертание, класифицирания скрипт и разделен със точка и запетая списък с предложения за резервни шрифтове

GetUnresolvedGlyphs връща текущия отчет на документа, а ClearUnresolvedGlyphs стартира нов интервал за отчитане

Претоваренията с изричен стил на THotPDF.ResolveFontForCodePoint и THotPDF.AnalyzeUnresolvedGlyphs приемат TFontStyles, така че preflight може да инспектира същото начертание, използвано за изхода; оригиналните им претоварения продължават да инспектират regular начертания

Текстовите кутии, вграденият SVG текст и appearance-ите на зареден текст задържат стилизираните шрифтови семейства през подредбата с резервни шрифтове, вместо да третират вътрешните PDF имена на шрифтове като системни семейства или да превключват всяка поредица на regular начертание

Вертикално CJK писане

THPDFPage.TextOutVertical избира вертикалния вариант на текущото начертание и издава една вертикална текстова поредица Identity-V, вместо да позиционира всеки знак ръчно

Пример

PDF.SetFontFallbackChain(hfsCJK,
  ['Microsoft YaHei UI', 'Yu Gothic UI', 'Malgun Gothic']);
PDF.SetFontFallbackChain(hfsEmoji, ['Segoe UI Emoji']);

PDF.CurrentPage.SetFont('Arial', [], 12);
PDF.CurrentPage.TextOutWithFallback(72, 72, 0, Text);

PDF.CurrentPage.SetFont('Yu Gothic UI', [], 14);
PDF.CurrentPage.TextOutVertical(420, 72, VerticalText);

Missing := PDF.GetUnresolvedGlyphs;

Свързани API