Udostępnij przez


Korzystanie z aparatów kształtowania

Uniscribe używa wielu aparatów kształtowania, które zawierają wiedzę o układzie dla określonych skryptów. Wykorzystuje również mechanizm układu OpenType do obsługi funkcji skryptowych specyficznych dla czcionki, takich jak generowanie glifów, pomiar rozmiaru i obsługa łamania wyrazów. Uniscribe zarządza dwukierunkowym przeorganizowaniem kolejności znaków przy użyciu algorytmu dwukierunkowego Unicode i rozumie formaty czcionek niebędące OpenType dla tworzenia układów dla pisma arabskiego, hebrajskiego i tajskiego.

Ponieważ dokładne zakresy punktów kodu przypisane do każdego aparatu kształtowania mogą się różnić, numery skryptów nie są publikowane, z wyjątkiem SCRIPT_UNDEFINED. Jednak aplikacja może przetestować atrybuty skryptów, wywołując funkcję ScriptGetProperties, która uzyskuje dostęp do globalnej tabeli właściwości skryptu. Aplikacja może używać globalnych właściwości skryptów, aby ułatwić łączenie własnych reguł układu z wymaganymi podziałami w aparacie kształtowania.

Aplikacja uzyskuje dostęp do aparatu kształtowania za pomocą wywołania funkcji ScriptShape. Wszystkie złożone mechanizmy kształtowania skryptów, mechanizmy kształtowania cyfr oraz mechanizmy kształtowania ASCII weryfikują czcionkę wskazaną w uchwycie kontekstu urządzenia przed kształtowaniem. Skrypty złożone muszą być kształtowane przy użyciu skryptu zwróconego przez funkcję ScriptItemize w celu zapewnienia czytelności. Inne przebiegi pozostają czytelne, jeśli mają kształt SCRIPT_UNDEFINED określony w eScript składowej struktury SCRIPT_ANALYSIS, chociaż mogą utracić jakość typograficznej.

ScriptShape zwraca 0, jeśli operacja zakończy się sukcesem, lub USP_E_SCRIPT_NOT_IN_FONT, jeśli czcionka dostarczona przez aplikację nie zawiera wystarczającej liczby glifów ani tabel kształtowania. Jeśli aplikacja określa SCRIPT_UNDEFINED i niektóre znaki nie są obsługiwane przez czcionkę, funkcja nadal kończy się powodzeniem. W takim przypadku aplikacja powinna skanować bufor wyjściowy glif pod kątem obecności brakujących glifów. Aby uzyskać strategie radzenia sobie z brakującymi glifami, zobacz Używanie zamienników czcionek.

Korzystanie z Uniscribe