Udostępnij za pośrednictwem


Używanie przenośnych metryk TrueType

Aplikacje korzystające z metryk tekstu TrueType mogą osiągnąć wysoki stopień przenośności drukarki i dokumentu; mogą używać metryk TrueType, nawet jeśli muszą zachować zgodność z wczesnymi 16-bitowymi wersjami systemu Windows.

Szerokość projektu pozwala wyeliminować większość problemów z tekstem zależnym od urządzenia wprowadzonym przez urządzenia fizyczne. Szerokości projektowe są rodzajem szerokości logicznej. Niezależnie od wszelkich problemów z rasteryzacją lub przekształceń skalowania każdy glyph ma logiczną szerokość i wysokość. Składa się ze strony logicznej, każdy znak w ciągu ma miejsce niezależne od szerokości urządzenia fizycznego. Mimo że szerokość logiczna oznacza, że szerokości można skalować liniowo we wszystkich rozmiarach punktów, niekoniecznie dotyczy to czcionek nonportable lub większości czcionek TrueType. W mniejszych rozmiarach punktów niektóre glify są szersze w stosunku do ich wysokości, aby zapewnić lepszą czytelność.

Znaki w czcionkach podstawowych TrueType są zaprojektowane w odniesieniu do siatki o rozmiarze 2048 na 2048. Szerokość projektu to szerokość znaku w tych jednostkach siatki. (TrueType obsługuje dowolny rozmiar siatki całkowitej do 16 384 na 16 384; rozmiary siatki, które są potęgami liczby 2, skalują się szybciej niż inne rozmiary siatki).

Kontur czcionki został zaprojektowany w jednostkach notionalnych. Kwadrat em to teoretyczna siatka, do której dopasowuje się konstrukcja czcionki. (Możesz użyć otmEMSquare elementu członkowskiego OUTLINETEXTMETRIC oraz ntmSizeEM elementu członkowskiego NEWTEXTMETRIC, aby pobrać rozmiar kwadratu em w jednostkach notionalnych). Gdy utworzy się czcionkę, która ma rozmiar w punktach (w jednostkach urządzenia) równy rozmiarowi kwadratu em, szerokość ABC dla tej czcionki jest żądaną szerokością projektową. Załóżmy na przykład, że rozmiar kwadratu em wynosi 1000, a szerokość ABC znaku w czcionki to 150, 400 i 150. Znak w tej czcionce, który ma wysokość 10 jednostek urządzenia, będzie miał odpowiednio szerokości ABC wynoszące 1,5, 4 i 1,5. Ponieważ tryb mapowania MM_TEXT jest najczęściej używany z czcionkami (a MM_TEXT jest odpowiednikiem jednostek urządzenia), jest to proste obliczenie.

Ze względu na wysoką rozdzielczość szerokości projektu TrueType aplikacje korzystające z nich muszą uwzględniać duże wartości liczbowe, które można utworzyć. Aby uzyskać więcej informacji, zobacz następujące tematy: