Udostępnij przez


Złożone przetwarzanie skryptów

Poniżej przedstawiono opcje wyświetlania i powiązanego przetwarzania tekstu w celu obsługi drobnych efektów typografii lub złożonych skryptów:

  • Funkcje tekstowe
  • Edytowanie kontrolek
  • Zaawansowane kontrolki edycji
  • Uniscribe

Wybrane opcje zależą od następujących czynników:

  • Typ tekstu lub skryptów.
  • Model implementacji, na przykład układ tekstu i obsługa podziału wierszy przez aplikację.
  • Aktualizacja istniejącej aplikacji w porównaniu z tworzeniem nowej aplikacji.

Ogólnie rzecz biorąc, aplikacja, która wykonuje stosunkowo proste przetwarzanie skryptów, może wybrać dowolną opcję przetwarzania złożonych skryptów. Jednak w przypadku najbardziej kompletnej kontroli złożonego przetwarzania skryptów zaleca się stosowanie polecenia Uniscribe.

Złożone przetwarzanie skryptów przy użyciu funkcji tekstowych

Aplikacje używające głównie zwykłego tekstu, czyli tekstu używającego tego samego kroju pisma, grubości, koloru itd., tradycyjnie pisały tekst i mierzyły długości wierszy przy użyciu standardowych funkcji tekstowych, takich jak TextOut, ExtTextOut, TabbedTextOut, DrawTexti GetTextExtentExPoint. Te funkcje obsługują przetwarzanie złożonych skryptów i drobnych efektów typografii. Aby uzyskać więcej informacji, zobacz Font and Text.

Ogólnie rzecz biorąc, standardowa obsługa tekstu jest przezroczysta dla aplikacji przetwarzających złożone skrypty. Należy jednak pamiętać o pewnych konkretnych regułach, które należy przestrzegać podczas pisania aplikacji obsługujących drobną typografię i przetwarzanie złożonych skryptów:

  • Aplikacja powinna zapisywać znaki w buforze i wyświetlać cały wiersz tekstu na raz, zamiast wywoływać ExtTextOut dla każdego znaku, gdy jest on wpisywany przez użytkownika. Ten mechanizm umożliwia zaawansowanym modułom kształtowania tekstu używanie kontekstu do zmieniania kolejności i poprawnego generowania glifów.
  • Aplikacja powinna używać GetTextExtentExPoint w celu określenia długości wiersza zamiast obliczania długości wierszy z buforowanych szerokości znaków, ponieważ szerokość glifów może się różnić w zależności od kontekstu.
  • Aplikacja powinna opcjonalnie dodawać obsługę kolejności odczytu od prawej do lewej oraz wyrównania do prawej strony.
  • Zmiana kolejności i przetwarzanie kontekstowe wymagane dla złożonych skryptów lub typografii precyzyjnej wymaga znacznego zwiększenia przetwarzania w przypadku podstawowego wyświetlania tekstu w przypadku prostych skryptów. W związku z tym, aby uniknąć problemów z wydajnością, aplikacja nie powinna przetwarzać dużych ilości tekstu przed wyświetleniem wyników i zwróceniem kontroli do użytkownika.

Złożone przetwarzanie skryptów przy użyciu kontrolek edycji

Standardowe kontrolki edycji systemu Windows zostały rozszerzone w celu obsługi wielojęzycznych skryptów tekstowych i złożonych. Rozszerzona obsługa obejmuje wprowadzanie i wyświetlanie, a także poprawne przenoszenie kursora w klastrach znaków, na przykład w skryptach tajskich i devanagari. Aby uzyskać więcej informacji, zobacz Elementy sterujące edycją.

Złożone przetwarzanie skryptów przy użyciu kontrolek Rich Edit

Funkcja Rich Edit 3.0 to kolekcja interfejsów wyższego poziomu, która korzysta z funkcji Uniscribe w celu odizolowania aplikacji układu tekstu od złożoności niektórych skryptów. Rich Edit to najprostszy sposób, aby aplikacje wyświetlały złożone skrypty, chociaż ich głównym celem nie jest układ tekstu. Rich Edit zapewnia szybkie i wszechstronne edytowanie bogatego tekstu wielojęzycznego Unicode oraz prostego tekstu zwykłego. Obejmuje rozbudowane interfejsy komunikatów i COM, edytowanie tekstu, formatowanie, podział wierszy, prosty układ tabeli, układ tekstu pionowego, dwukierunkowy układ tekstu, obsługę języka indyjskiego i tajskiego, interfejs użytkownika do edytowania bardzo podobny do Microsoft Word oraz interfejsy Text Object Model.

Oprócz interfejsów Rich Edit, aplikacje mogą używać funkcji Rich Edit TextOut, aby automatycznie analizować, kształtować, pozycjonować i dzielić wiersze. Aby uzyskać więcej informacji, zobacz kontrolki edycji wzbogaconej.

Złożone przetwarzanie skryptów przy użyciu Uniscribe

uniscribe zapewnia najszerszą obsługę przetwarzania tekstu obejmującego efekty typografii precyzyjnej i złożone skrypty. Obsługuje złożone reguły znalezione w skryptach, takich jak arabski, Devanagari i Tajski. Obsługuje skrypty napisane od prawej do lewej, takie jak arabski i hebrajski, i obsługuje mieszanie skryptów. Uniscribe uwidacznia również funkcje czcionek OpenType, które mogą być używane przez aplikacje do kontrolowania drobnych efektów typografii. Aby uzyskać więcej informacji, zobacz Przetwarzanie złożonych skryptów.

O Uniscribe

Przetwarzanie złożonych skryptów