Sdílet prostřednictvím


Použití shapovacích engineů

Uniscribe používá více modulů tvarování, které obsahují znalosti rozložení pro konkrétní skripty. Využívá také modul pro tvarování rozložení OpenType pro zpracování funkcí skriptů specifických pro písmo, jako je generování glyfů, měření rozsahu a podpora dělení slov. Uniscribe spravuje obousměrné přeuspořádání znaků pomocí obousměrného algoritmu Unicode a rozumí formátům písma, které nejsou typu OpenType, pro formátování arabštiny, hebrejštiny a thajštiny.

Vzhledem k tomu, že přesné rozsahy bodů kódu přiřazené jednotlivým formovacím modulu se mohou lišit, čísla skriptů se nepublikují s výjimkou SCRIPT_UNDEFINED. Aplikace však může testovat atributy skriptů voláním ScriptGetProperties funkce, která přistupuje k tabulce vlastností globálního skriptu. Aplikace může pomocí vlastností globálního skriptu zkombinovat vlastní pravidla rozložení s požadovanými děleními modulu tvarování.

Aplikace přistupuje k shaping engine voláním funkce ScriptShape. Všechny složité moduly pro tvarování skriptů, moduly pro tvarování číslic a moduly tvarování ASCII před tvarováním ověřují písmo uvedené v popisovači kontextu zařízení. Složité skripty musí být tvarovány pomocí skriptu vráceného funkcí ScriptItemize, aby byly čitelné. Ostatní běhy zůstanou čitelné, pokud jsou tvarovány se SCRIPT_UNDEFINED určeným v eScript členu struktury SCRIPT_ANALYSIS, i když mohou ztratit na typografické kvalitě.

ScriptShape vrátí hodnotu 0 v případě úspěchu nebo USP_E_SCRIPT_NOT_IN_FONT, pokud písmo zadané aplikací neobsahuje dostatek glyfů nebo tvarovacích tabulek. Pokud aplikace určuje SCRIPT_UNDEFINED a písmo nepodporuje některé znaky, bude funkce pořád úspěšná. V tomto případě by aplikace měla zkontrolovat výstupní vyrovnávací paměť glyfů, zda neobsahuje chybějící glyfy. Strategie řešení chybějících glyfů najdete v tématu Použití náhradníhopísma .

Použití Uniscribe