Font Fallback and Vertical Text

HotPDF dokáže vyberať fallback rezy podľa písma Unicode, hlásiť nevyriešené kódové body a zapisovať text CJK cez reálny vertikálny zápisový režim CID

Záložné reťazce na úrovni dokumentu

THotPDF.SetFontFallbackChain uchováva usporiadaný zoznam rezov pre jednu kategóriu THPDFFontScript

THPDFPage.TextOutWithFallback vyrieši každý skalár Unicode voči vybranému rezu, jeho reťazcu písiem a spoločnému reťazcu a potom zapisuje susedné skaláre s rovnakým rezom ako jeden textový úsek

Akcioneschopná diagnostika

AnalyzeUnresolvedGlyphs vykonáva audit pokrytia len na čítanie, zatiaľ čo TextOutWithFallback zaznamenáva nevyriešené skaláre stretolé počas výstupu

Každý THPDFUnresolvedGlyphInfo zahŕňa skalárny kódový bod, primárny rez, klasifikované písmo a zoznam fallback návrhov oddeľovaných bodkočiarkami

GetUnresolvedGlyphs vracia aktuálne hlásenie dokumentu a ClearUnresolvedGlyphs začína nový interval hlásenia

Preťaženia THotPDF.ResolveFontForCodePoint a THotPDF.AnalyzeUnresolvedGlyphs s explicitným štýlom prijímajú TFontStyles, takže preflight môže inšpektovať ten istý rez, aký sa použije pri výstupe; ich pôvodné preťaženia ďalej inšpektujú bežné rezy

Textové boxy, vložený text SVG a vzhľady načítaného textu si cez fallback layout zachovávajú štýlované rodiny fontov, namiesto toho, aby za systémové rodiny považovali interné názvy PDF fontov alebo prepínali každý beh na bežný rez

Vertikálne CJK písanie

THPDFPage.TextOutVertical vyberá vertikálny variant aktuálneho rezu a zapisuje jeden textový úsek Identity-V namiesto ručného pozicionovania každého znaku

Príklad

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;

Súvisiace API