Резервні шрифти та вертикальний текст

HotPDF може обирати резервні гарнітури за сценарієм Unicode, повідомляти про кодові точки, що залишилися нерозв'язаними, та писати текст CJK через справжній вертикальний режим письма CID

Ланцюги резервних шрифтів на рівні документа

THotPDF.SetFontFallbackChain зберігає впорядкований список гарнітур для однієї категорії THPDFFontScript

THPDFPage.TextOutWithFallback розв'язує кожен Unicode-скаляр проти обраної гарнітури, її ланцюга сценаріїв та загального ланцюга, а потім видає суміжні скаляри з однаковою гарнітурою як один текстовий прохід

Придатна до дій діагностика

AnalyzeUnresolvedGlyphs виконує аудит покриття лише для читання, тоді як TextOutWithFallback записує нерозв'язані скаляри, виявлені під час виводу

Кожен THPDFUnresolvedGlyphInfo містить скалярну кодову точку, основну гарнітуру, класифікований сценарій та розділений крапкою з комою список пропозицій резервних шрифтів

GetUnresolvedGlyphs повертає поточний звіт документа, а ClearUnresolvedGlyphs починає новий інтервал звітування

Перевантаження з явним стилем THotPDF.ResolveFontForCodePoint та THotPDF.AnalyzeUnresolvedGlyphs приймають TFontStyles, тож попередня перевірка може інспектувати ту саму гарнітуру, що використано для виводу; початкові перевантаження як і раніше інспектують звичайні накреслення

Текстові блоки, вбудований текст SVG і вигляди завантаженого тексту зберігають стилізовані родини шрифтів під час резервного компонування, замість того щоб вважати внутрішні назви шрифтів PDF системними родинами чи перемикати кожен прохід на звичайне накреслення

Вертикальне письмо 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